Kita telah mengetahui bahwa jika dua objek suatu kelas mempunyai referensi yang sama, maka keduanya mempunyai entitas dan fungsi yang sama, seperti:
Aone=baruA();Adua=satu;
Asumsikan kelas A memiliki variabel anggota int bernama x. Kemudian, jika Anda melakukan operasi berikut:
dua.x=100;
Maka nilai one.x juga akan menjadi 100.
Contoh lain, parameter metode tertentu bertipe People:
publicvoidf(Orangp){px=200;}
Jika saat memanggil metode ini, referensi ke objek People, seperti zhang, diteruskan ke parameter P, maka nilai zhang.x juga akan menjadi 200 setelah metode tersebut dijalankan.
Terkadang Anda ingin mendapatkan "salinan" suatu objek. Perubahan pada entitas salinan tidak akan menyebabkan perubahan pada entitas objek aslinya, begitu pula sebaliknya. Salinan seperti itu disebut objek tiruan dari objek aslinya atau sekadar kloning .
Sangat mudah untuk mendapatkan tiruan dari objek serial menggunakan aliran objek. Cukup tulis objek ke tujuan yang ditunjukkan oleh aliran keluaran objek, lalu gunakan tujuan tersebut sebagai sumber aliran masukan objek, yang kemudian dibaca dari sumbernya. Objek yang dikembalikan harus merupakan tiruan dari objek asli, yaitu aliran input objek memperoleh tiruan dari objek saat ini melalui informasi serialisasi objek. Misalnya objek xinfei pada contoh di bagian sebelumnya merupakan tiruan dari objek changhong.
Ketika sebuah program ingin mendapatkan tiruan suatu objek dengan lebih cepat, program tersebut dapat menggunakan aliran objek untuk menulis informasi serialisasi objek tersebut ke dalam memori alih-alih menulisnya ke file di disk. Aliran objek menggunakan aliran array sebagai aliran yang mendasarinya untuk menulis informasi serialisasi objek ke dalam memori. Misalnya kita bisa mengambil contoh pada bagian sebelumnya
FileOutputStreamfileOut=newFileOutputStream(file);ObjectOutputStreamobjectOut=newObjectOutputStream(fileOut);
Dan
FileInputStreamfileIn=newFileInputStream(file);ObjectInputStreamobjectIn=newObjectInputStream(fileIn);
Ubah menjadi:
ByteArrayOutputStreamoutByte=newByteArrayOutputStream();ObjectOutputStreamobjectOut=newObjectOutputStream(outByte);
Dan
ByteArrayInputStreaminByte=newByteArrayInputStream(outByte.toByteArray());ObjectInputStreamobjectIn=newObjectInputStream(inByte);
Kelas Komponen dalam paket java.awt adalah kelas yang mengimplementasikan antarmuka Serializable. Komponen adalah objek serial , oleh karena itu, program dapat menulis komponen ke aliran keluaran, dan kemudian menggunakan aliran masukan untuk membaca tiruannya komponen.