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:
- Bir nesne oluşturulur ve durumu belirli değerlerle doldurulur.
- Nesne,
ObjectOutputStream
kullanılarak bayt akışına dönüştürülür. - 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;
}
}
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)