Serileştirme Java'da kalıcılık için kullanılır. Serileştirmeyi kullanarak birkaç nesneyi devam ettirmek uygun olabilir. Ancak, çok sayıda nesne için ORM, Veritabanı vb. Daha iyi olabilir. Serileştirmenin sadece küçük işler için yararlı olduğu görülmektedir. Belki hatalıyım. Öyleyse lütfen serileştirmenin serileştirme yöntemlerine göre avantajları nelerdir? Ne zaman kullanılmalı ve ne zaman kullanılmamalıdır?
Bu soru, DZone'un Nesne Serileştirmesi Kötü mü? Makalesini gördükten sonra aklıma geldi.
Ve bunlar soruma yol açan çizgiler:
Java ve onun oturum nesnelerine bakarsanız, saf nesne serileştirmesi kullanılır. Bir uygulama oturumunun oldukça kısa ömürlü olduğu varsayılarak, en fazla birkaç saat içinde, nesne serileştirmesi basittir, iyi desteklenir ve bir oturumun Java kavramı içinde yerleşiktir. Ancak, veri kalıcılığı uzun bir süre, muhtemelen günler veya haftalar boyunca olduğunda ve uygulamanın yeni sürümleri hakkında endişelenmeniz gerektiğinde, serileştirme hızla kötüleşir. İyi bir Java geliştiricisinin bildiği gibi, bir nesneyi bir oturumda bile serileştirmeyi planlıyorsanız, sadece 1L'ye değil, gerçek bir serileştirme kimliğine (serialVersionUID) ihtiyacınız var ve Serializable arabirimini uygulamanız gerekir. Ancak, çoğu geliştirici Java serileştirme sürecinin arkasındaki gerçek kuralları bilmiyor. Nesneniz değiştiyse, sadece nesneye basit alanlar eklemekten daha fazlası, serileştirme kimliği değişmese bile Java'nın nesnenin serisini doğru şekilde kaldıramaması mümkündür. Aniden, verilerinizi artık alamazsınız, bu da doğal olarak kötüdür.
Şimdi, bunu okuyan geliştiriciler, bu soruna sahip olacak kodu asla yazamayacaklarını söyleyebilirler. Bu doğru olabilir, ancak kullandığınız bir kütüphane veya şirketiniz tarafından artık kullanılmayan başka bir geliştirici ne olacak? Bu sorunun asla olmayacağını garanti edebilir misiniz? Bunu garanti etmenin tek yolu farklı bir serileştirme yöntemi kullanmaktır.
1L
değil' bölümü doğru değil.