DEV Community

Mustafa  Çam
Mustafa Çam

Posted on

Java serialization

Java'da serileştirme (serialization), bir nesnenin durumunu bayt akışına (byte stream) dönüştürme işlemidir¹. Bu işlem sayesinde, nesneler diskte, veritabanında veya ağ üzerinden iletilmek üzere kaydedilebilir². Serileştirme, Java'nın Serializable arayüzünü uygulayan nesneler için mümkündür ve bu nesnelerin durumları, Java Sanal Makinesi (JVM) tarafından yeniden oluşturulabilir bir formatta saklanır¹.

Serileştirme işlemi, genellikle aşağıdaki adımları içerir:

  1. Bir nesne oluşturulur ve durumu belirli değerlerle doldurulur.
  2. Nesne, ObjectOutputStream kullanılarak bayt akışına dönüştürülür.
  3. Bayt akışı, bir dosyaya, veritabanına veya ağ üzerinden gönderilecek bir akışa yazılır.

Deserileştirme (deserialization) ise, serileştirilmiş bayt akışının tekrar nesne durumuna dönüştürülmesi işlemidir². Bu işlem, ObjectInputStream kullanılarak gerçekleştirilir ve nesnenin orijinal durumu ve özellikleriyle yeniden kullanılmasını sağlar.

Örnek bir serileştirme ve deserileştirme kodu:

import java.io.*;

public class SerilestirmeOrnegi {
    public static void main(String[] args) {
        // Serileştirme
        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("nesne.dat"))) {
            Kullanici kullanici = new Kullanici("Ali", "Veli");
            out.writeObject(kullanici);
        } catch (IOException e) {
            e.printStackTrace();
        }

        // Deserileştirme
        try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("nesne.dat"))) {
            Kullanici kullanici = (Kullanici) in.readObject();
            System.out.println(kullanici.getAd() + " " + kullanici.getSoyad());
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

class Kullanici implements Serializable {
    private String ad;
    private String soyad;

    public Kullanici(String ad, String soyad) {
        this.ad = ad;
        this.soyad = soyad;
    }

    public String getAd() {
        return ad;
    }

    public String getSoyad() {
        return soyad;
    }
}
Enter fullscreen mode Exit fullscreen mode

Bu örnekte, Kullanici sınıfı Serializable arayüzünü uygular ve bu sayede nesneleri serileştirebilir ve deserileştirebiliriz. nesne.dat dosyasına serileştirilen nesne, daha sonra deserileştirilerek orijinal durumuna geri dönüştürülür¹.

Kaynak: Bing ile konuşma, 17.05.2024
(1) Java Serialization (Serileştirme) Nedir? - Burak Kutbay'ın Kişisel Blog'u. https://blog.burakkutbay.com/java-serialization-serilestirme-nedir.html/.
(2) Java Serialization ve Deserialization İşlemleri - CodingByTime. https://codingbytime.com/java-serialization-ve-deserialization-islemleri/.
(3) Java Serialization ve Deserialization İşlemleri - CodingByTime. https://bing.com/search?q=java+serile%c5%9ftirme+nedir.
(4) Java’da Paralel ve Seri Programlama: Temel Farklar ve ... - Medium. https://medium.com/@tarikkaan1koc/javada-paralel-ve-seri-programlama-temel-farklar-ve-senkronizasyon-araçları-f1f38c1dcd90.
(5) Serialization ve ObjectStream Sınıfları Lesson | Patika.dev. https://academy.patika.dev/courses/java-102/io-objectstream.

Top comments (0)