Serializable ve Transient Nedir? Java Serileştirme ve Veri Güvenliği
Java’da nesneleri dosyaya kaydetmek, ağ üzerinden göndermek veya oturum verilerini saklamak için Serializable ve transient kavramları oldukça önemlidir.
Bu yazıda Java Serializable nedir, transient anahtar kelimesi ne işe yarar ve aralarındaki farkları örneklerle detaylı şekilde inceleyeceğiz.
Java Serializable ve Transient Nedir?
Serializable, Java’da bir sınıfın nesnelerini serileştirilebilir hale getiren bir arayüzdür.
Serileştirme işlemi, nesneleri byte stream formatına çevirerek dosyaya yazma veya ağ üzerinden taşıma imkanı sağlar.
1. Serileştirmenin Kullanım Alanları
- Nesneleri dosyaya kaydetme
- Ağ üzerinden veri gönderme
- Veritabanında saklama
- Session / oturum yönetimi
2. Transient Anahtar Kelimesi
transient, belirli alanların serileştirme dışında bırakılmasını sağlar.
Özellikle şifre, token, hassas bilgiler gibi alanlarda kullanılır.
class User implements Serializable {
String username;
transient String password;
}
Yukarıdaki örnekte password alanı dosyaya yazılmaz.
3. Serializable ve Transient Arasındaki Fark
- Serializable: nesneyi kaydetmeye yarar
- transient: belirli alanları hariç tutar
- Birlikte kullanılır
Sık Sorulan Sorular
Serializable neden kullanılır?
Nesneleri dosyada saklamak veya network üzerinden göndermek için kullanılır.
Transient hangi alanlarda kullanılır?
Şifre, token, geçici cache verileri gibi hassas bilgilerde kullanılır.
transient değer deserialize sonrası ne olur?
Varsayılan değere döner (null, 0, false).
Sonuç
Java’da Serializable nesne serileştirme işlemini sağlarken, transient belirli alanların bu işleme dahil edilmesini engeller.
Özellikle güvenlik ve performans açısından birlikte kullanımı oldukça önemlidir.