類的對象會隨著程序的終止而被垃圾收集器銷毀。如果要在不重新創(chuàng)建對象的情況下調(diào)用該類,該怎么做?這就可以通過序列化將**數(shù)據(jù)轉(zhuǎn)換為字節(jié)流**。
**對象序列化**是一個用于將對象狀態(tài)轉(zhuǎn)換為字節(jié)流的過程,可以將其保存到磁盤文件中或通過網(wǎng)絡(luò)發(fā)送到任何其他程序;從字節(jié)流創(chuàng)建對象的相反的過程稱為反序列化。而創(chuàng)建的字節(jié)流是與平臺無關(guān)的,在一個平臺上序列化的對象可以在不同的平臺上反序列化。
Java類可序列化
通過實現(xiàn)java.io.Serializable接口,可以在Java類中啟用可序列化。它是一個標(biāo)記接口,意味著它不包含任何方法或字段,僅用于標(biāo)識可序列化的語義
序列化與反序列化則實現(xiàn)了**進(jìn)程通信間的對象傳送**,發(fā)送方需要把這個Java對象轉(zhuǎn)換為字節(jié)序列,才能在網(wǎng)絡(luò)上傳送;接收方則需要把字節(jié)序列再恢復(fù)為Java對象。
**如何實現(xiàn)序列化與反序列化**
使用到JDK中關(guān)鍵類 ObjectOutputStream(對象輸出流) 和ObjectInputStream(對象輸入流)
ObjectOutputStream 類中:通過使用 writeObject(Object object) 方法,將對象以二進(jìn)制格式進(jìn)行寫入。
ObjectInputStream 類中:通過使用 readObject()方法,從輸入流中讀取二進(jìn)制流,轉(zhuǎn)換成對象。
以上就是天津卓眾教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java中序列化和反序列化詳細(xì)分析”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。