เรารู้อยู่แล้วว่าหากวัตถุสองชิ้นในคลาสมีการอ้างอิงเดียวกัน วัตถุเหล่านั้นก็จะมีเอนทิตีและฟังก์ชันที่เหมือนกัน เช่น:
Aone=newA();Atwo=หนึ่ง;
สมมติว่าคลาส A มีตัวแปร int สมาชิกชื่อ x จากนั้น ถ้าคุณดำเนินการต่อไปนี้:
สอง.x=100;
จากนั้นค่าของ one.x จะเป็น 100 เช่นกัน
อีกตัวอย่างหนึ่ง พารามิเตอร์ของวิธีการบางอย่างเป็นประเภท People:
publicvoidf (คน) {px = 200;}
หากเมื่อเรียกใช้เมธอดนี้ การอ้างอิงถึงอ็อบเจ็กต์ของ People เช่น zhang ถูกส่งไปที่พารามิเตอร์ P ดังนั้นค่าของ zhang.x จะเป็น 200 เช่นกันหลังจากดำเนินการเมธอดนี้
บางครั้งคุณต้องการได้รับ "สำเนา" ของวัตถุ การเปลี่ยนแปลงในเอนทิตีการคัดลอกจะไม่ทำให้เกิดการเปลี่ยนแปลงในเอนทิตีวัตถุดั้งเดิม และในทางกลับกัน สำเนาดังกล่าวเรียกว่า วัตถุโคลน ของวัตถุต้นฉบับหรือเรียกง่ายๆว่า โคลน
เป็นเรื่องง่ายที่จะรับโคลนของออบเจ็กต์ที่ต่อเนื่องกันโดยใช้ออบเจ็กต์สตรีม เพียงเขียนออบเจ็กต์ไปยังปลายทางที่สตรีมเอาท์พุตของออบเจ็กต์ชี้ จากนั้นใช้ปลายทางนั้นเป็นแหล่งที่มาของสตรีมอินพุตของออบเจ็กต์ ซึ่งจะอ่านจากแหล่งที่มา วัตถุที่ส่งคืนจะต้องเป็นโคลนของวัตถุดั้งเดิม นั่นคือ สตรีมอินพุตของวัตถุได้รับโคลนของวัตถุปัจจุบันผ่านข้อมูลการทำให้เป็นอนุกรมของวัตถุ ตัวอย่างเช่น วัตถุ xinfei ในตัวอย่างในส่วนก่อนหน้าคือโคลนของวัตถุ changhong
เมื่อโปรแกรมต้องการโคลนอ็อบเจ็กต์เร็วขึ้น โปรแกรมสามารถใช้ออบเจ็กต์สตรีมเพื่อเขียนข้อมูลซีเรียลไลซ์ของอ็อบเจ็กต์ลงในหน่วยความจำ แทนที่จะเขียนลงไฟล์บนดิสก์ ออบเจ็กต์สตรีมใช้อาร์เรย์สตรีมเป็นสตรีมพื้นฐานเพื่อเขียนข้อมูลการทำให้เป็นอนุกรมของออบเจ็กต์ลงในหน่วยความจำ ตัวอย่างเช่น เราสามารถยกตัวอย่างในส่วนก่อนหน้าได้
FileOutputStreamfileOut=newFileOutputStream(ไฟล์);ObjectOutputStreamobjectOut=newObjectOutputStream(fileOut);
และ
FileInputStreamfileIn=newFileInputStream(ไฟล์);ObjectInputStreamobjectIn=newObjectInputStream(fileIn);
เปลี่ยนเป็น:
ByteArrayOutputStreamoutByte=newByteArrayOutputStream();ObjectOutputStreamobjectOut=newObjectOutputStream(outByte);
และ
ByteArrayInputStreaminByte=newByteArrayInputStream(outByte.toByteArray());ObjectInputStreamobjectIn=newObjectInputStream(inByte);
คลาส Component ในแพ็คเกจ java.awt เป็นคลาสที่ใช้อินเตอร์เฟส Serializable ดังนั้นโปรแกรมจึงสามารถเขียนส่วนประกอบไปยังเอาต์พุตสตรีมแล้วใช้สตรีมอินพุตเพื่ออ่าน โคลน ของ ส่วนประกอบ.