การทำให้เป็นอนุกรม เป็นกระบวนการของการแปลงข้อมูลสถานะของวัตถุเป็นรูปแบบที่สามารถจัดเก็บหรือส่งผ่าน โดยทั่วไปวัตถุจะถูกเก็บไว้ในสื่อจัดเก็บเช่นคลังเก็บหรือบัฟเฟอร์การอ้างอิง ในระหว่างการส่งเครือข่ายสามารถอยู่ในรูปแบบเช่นไบต์หรือ XML รูปแบบการเข้ารหัสไบต์หรือ XML สามารถกู้คืนวัตถุที่เท่ากันได้อย่างสมบูรณ์ กระบวนการตรงกันข้ามนี้เรียกว่า deserialization
การทำให้เป็นอนุกรมและ deserialization ของวัตถุ Java <br /> ใน Java เราสามารถสร้างวัตถุได้หลายวิธีและเราสามารถนำวัตถุกลับมาใช้ใหม่ได้ตราบใดที่วัตถุไม่ได้รีไซเคิล อย่างไรก็ตามวัตถุ Java ที่เราสร้างทั้งหมดมีอยู่ในหน่วยความจำกอง JVM วัตถุเหล่านี้สามารถมีอยู่ได้ก็ต่อเมื่อ JVM อยู่ในสถานะการทำงาน เมื่อ JVM หยุดทำงานสถานะของวัตถุเหล่านี้จะหายไป
อย่างไรก็ตามในสถานการณ์แอปพลิเคชันจริงเราต้องคงไว้ซึ่งวัตถุเหล่านี้และสามารถอ่านวัตถุได้อีกครั้งเมื่อจำเป็น การทำให้เป็นอนุกรม Object Java สามารถช่วยให้เราใช้ฟังก์ชั่นนี้ได้
กลไกการทำให้เป็นอนุกรมวัตถุเป็นวิธีการคงอยู่ของวัตถุในตัวในภาษา Java ผ่านการทำให้เป็นอนุกรมวัตถุสถานะของวัตถุสามารถบันทึกเป็นอาร์เรย์ไบต์และอาเรย์ไบต์นี้สามารถแปลงเป็นวัตถุผ่าน deserialization เมื่อจำเป็น การทำให้เป็นอนุกรมวัตถุสามารถแปลงได้อย่างง่ายดายระหว่างวัตถุที่ใช้งานและอาร์เรย์ไบต์ (สตรีม) ใน JVM
ใน Java การทำให้เป็นอนุกรมและ deserialization ของวัตถุถูกนำมาใช้กันอย่างแพร่หลายใน RMI (การเรียกใช้วิธีระยะไกล) และการส่งผ่านเครือข่าย
อินเทอร์เฟซที่เกี่ยวข้องและคลาส Java ให้ API ที่สะดวกเพื่อรองรับเพื่ออำนวยความสะดวกให้กับนักพัฒนาในการทำให้เป็นอนุกรมและ deserialize วัตถุ Java ซึ่งรวมถึงอินเทอร์เฟซและคลาสต่อไปนี้:
คลาสเปิดใช้งานฟังก์ชันการทำให้เป็นอนุกรมโดยใช้อินเตอร์เฟส java.io.serializable คลาสที่ไม่ได้ใช้อินเทอร์เฟซนี้จะไม่สามารถทำให้เป็นอนุกรมหรือ deserialize ของรัฐใด ๆ ชนิดย่อยทั้งหมดของคลาส serializable นั้นเป็นแบบอนุกรม อินเทอร์เฟซอนุกรมไม่มีวิธีการหรือฟิลด์และใช้เพื่อระบุความหมายแบบอนุกรมเท่านั้น (อินเทอร์เฟซนี้ไม่มีวิธีการและฟิลด์ดังนั้นทำไมวัตถุของคลาสที่ใช้อินเทอร์เฟซจึงสามารถเป็นอนุกรมได้?)
เมื่อพยายามทำให้เป็นอนุกรมวัตถุหากพบวัตถุที่ไม่รองรับอินเตอร์เฟส serializable ในกรณีนี้จะถูกโยนลงไปไม่ได้
หากคลาสที่จะเป็นอนุกรมมีคลาสหลักและหากคุณต้องการคงอยู่ตัวแปรที่กำหนดไว้ในคลาสแม่ในเวลาเดียวกันคลาสแม่ควรรวมอินเตอร์เฟส java.io.serializable
นี่คือคลาสที่ใช้อินเตอร์เฟส java.io.serializable
แพ็คเกจ com.hollischaung.serialization.serializabledemos; นำเข้า java.io.serializable;/*** สร้างโดย Hollis เมื่อวันที่ 16/2/15 ชื่อ;} public int getage () {return age;} public void setage (อายุ int) {this.age = age;}@entridepublic String toString () {return "ผู้ใช้ {" + "name = '" name +'/'' + " การทำให้เป็นอนุกรมและ deserialization ผ่านรหัสต่อไปนี้
แพ็คเกจ com.hollischaung.serialization.serializabledemos; นำเข้า org.apache.commons.io.fileutils; นำเข้า org.apache.commons.io.ioutils; นำเข้า Java.io.*;/*** ต้องการที่จะเป็นอนุกรม*/คลาสสาธารณะ serializabledEmo1 {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// เริ่มต้นผู้ใช้ ObjectUser1 = ใหม่ user1 (); user.setName ("hollis"); user.setaGe (23); system.out.println (ผู้ใช้) fileOutputStream ("tempfile")); oos.writeObject (ผู้ใช้);} catch (ioexception e) {e.printstacktrace ();} ในที่สุด {ioutils.closequietly (oos);} // read obj จากไฟล์ไฟล์ = ไฟล์ใหม่ ("tempfile"); fileInputStream (ไฟล์)); user1 newUser = (user1) ois.readObject (); system.out.println (newuser);} จับ (ioexception e) {e.printstacktrace ();} catch (classnotfoundexception e) {fileutils.forcedelete (ไฟล์);} catch (ioexception e) {e.printstacktrace ();}}}}}} // output: // user {name = 'hollis', อายุ = 23} // ผู้ใช้ {name = 'hollis', อายุ = 23}ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์สำหรับทุกคนในการเรียนรู้การทำให้เป็นอนุกรมวัตถุและ deserialization ใน Java