Java’da object’ler RAM’de yaşar. RAM içinde:
memory adresleri,
pointer/reference yapıları,
JVM’e özel bilgiler
ile tutulurlar.
Örneğin:
Kullanici k = new Kullanici();
oluşturduğumuzda object heap memory içinde oluşur.
Bu yapı:
çalışan JVM’e özeldir,
başka makineye doğrudan taşınamaz,
JVM kapanınca yok olur.
Çünkü object içinde:
pointer’lar,
memory adresleri,
JVM metadata bilgileri
bulunur.
Serialization Ne Yapar?
Serialization:
JVM’e bağlı RAM yapısını kaldırır,
object’i taşınabilir binary byte stream’e dönüştürür.
Yani:
Java Object
↓
Serialization
↓
Binary Byte Stream
Bu sayede object:
dosyaya yazılabilir,
ağdan gönderilebilir,
Redis/Cache içine koyulabilir,
Session’da saklanabilir.
Deserialization
Binary veri tekrar object’e çevrilir:
Binary Veri
↓
Deserialization
↓
Tekrar Java Object
Serializable Kullanımı
public class Kullanici implements Serializable {
}
Bu ifade:
“Bu object serialize edilebilir.”
anlamına gelir.
transient Nedir?
private transient String sifre;
transient alanlar serialize edilmez.
Yani:
dosyaya yazılmaz,
network’e gönderilmez,
deserialize sonrası null olur.
Genelde:
şifre,
token,
connection,
logger
gibi alanlarda kullanılır.
En Kritik Mantık
RAM’deki object:
JVM’e bağımlıdır,
fiziksel memory adreslerinde yaşar.
Serialized object ise:
taşınabilir,
saklanabilir,
standart binary formattadır.
Kısaca
Serializable:
JVM’de yaşayan bir object’i taşınabilir ve saklanabilir binary formata dönüştürme mekanizmasıdır.
Yorumlar (0)
Yorum yaz