- Kita dapat menyimpan sebuah keadaan Objek dengan Menserialisasi Objek tersebut.
- Untuk Menserialisasi sebuah Objek, kita butuh sebuah ObjectOutputStream (dari java.io)
- Streams (Bahasa indonesianya : aliran) terbagi menjadi 2, yaitu Aliran Koneksi (Connection Streams) atau Aliran Berantai (Chain Streams).
- Connection Streams dapat digambarkan sebagai sebuah Koneksi ke sebuah sumber atau tujuan, khususnya sebuah file, koneksi jaringan soket, atau konsol.
- Chain Streams Tidak dapat menghubungkan ke sebuah sumber atau tujuan dan harus di dirantai ke sebuah aliran koneksi (atau lainnya).
- Untuk menserialisasikan sebuah Objek ke file, buat sebuah FileOutputStream dan rantaikan ia ke sebuah ObjectOutputStream.
- Untuk menserialisasikan sebuah Objek, panggil writeObject(objek) pada ObjectOutputStream. Kita tidak butuh memanggil method pada FileOutpurStream.
- Untuk menserialisasi, sebuah objek harus impelementasikan Interface Serializable. Jika sebuah superclass meng-implementasikan Serializable, subclass akan secara otomatis di Serialisasikan bahkan jika tidak diberikan implementasi Serializable.
- Ketika sebuah Objek diserialisasikan, Seluruh Grafik Objek akan diserialisasi. Yang berarti objek referensi dari instans variable objek yang diserialisasi manapun akan diserialisasikan.
- Jika beberapa objek di grafik tidak diserialisasi, sebuah exception (pengecualian) akan dijalankan pada saat program dieksekusi, kecuali instance variable yang mengacu ke objek dilewati.
- Tanda sebuah Instance Variable dengan kata kunci transient jika kita ingin proses serialisasi melewati / mengabaikan instance variable tsb. Variable akan diberikan niali null (untuk objek referensi) atau nilai default (untuk primitive).
- Selama Deserialisasi, class dari semua Objek-Objek di grafik Harus tersedia di JVM (Java Virtual Machine).
- Kita membaca objek di (menggunakan readObject() ) di dalam urutan ketika objek-objek tsb ditulis / dimasukkan ke JVM.
- Tipe kembalian (return) dari readObject() adalah tipe Objek, jadi Objek-objek deserialisasi harus melemparkannya ke tipe sebenarnya (int, string atau primitive lainnya).
- Variabel Static TIDAK DISERIALISASI! Tidak masuk akal untuk menyimpan sebuah nilai static variable dari keadaan objek yang spesifik, karena semua objek-objek yang diketik hanya membagi sebuah nilai tunggal.
