2022-02-10

? ? java序列化著實(shí)令人困惑。找了一些博客看發(fā)現(xiàn)好多內(nèi)容都一樣。誒,但是讓我找到了一篇講的比較明白的文章。https://blog.csdn.net/qq_32575047/article/details/80070590?

? ? 嗯,還是得讓自己寫一寫,不然我過不了多久就會(huì)忘。

? ? 什么是序列化?我的理解,就是將對(duì)象寫入文件,該文件在你以文本形式閱讀是無意義的(因?yàn)榭床幻靼?,一大堆奇怪的符?hào)),并且Java虛擬機(jī)是可以將文件中的對(duì)象還原的,恢復(fù)至當(dāng)時(shí)的狀態(tài)。就如同游戲人物中的道具,等級(jí),經(jīng)驗(yàn)等東西,如果在關(guān)閉游戲后這些東西都沒了,得從頭開始。說實(shí)話勸退大多數(shù)人。但是,重新打開游戲后,對(duì)象的狀態(tài)可以恢復(fù),道具,等級(jí),經(jīng)驗(yàn)都會(huì)回復(fù)到原來的狀態(tài),就挺人性化的。

? ? 代碼: ??

????import java.io.*;

//引入實(shí)現(xiàn)io的庫

public class demo5 implements Serializable{

private int width;

private int height;

public void setWidth(int w){

width=w;

}

public void setHeight(int h){

height=h;

}

public static void main(String [] args){

demo5 demo =new demo5();

demo.setWidth(20);

demo.setHeight(50);

//當(dāng)對(duì)象被實(shí)例化時(shí),該對(duì)象引用的實(shí)例對(duì)象也會(huì)被實(shí)例化。且所有被引用的對(duì)象也會(huì)被實(shí)例化。操作實(shí)現(xiàn)時(shí)自動(dòng)進(jìn)行的。

try{

FileOutputStream? fs=new FileOutputStream("foo.ser");

//將文件寫入規(guī)定的文件夾,如果沒有文件夾就會(huì)創(chuàng)建一個(gè)新的文件夾

ObjectOutputStream os=new ObjectOutputStream(fs);

//將對(duì)象轉(zhuǎn)換成可以寫入的數(shù)據(jù)

os.writeObject(demo);

//寫入對(duì)象

os.close();

//關(guān)閉方法,且釋放內(nèi)存

} catch(Exception ex){

ex.printStackTrace();

}

}

? ? 結(jié)果:

注意的東西:1、首先類要實(shí)現(xiàn)Serializable接口

? ? ? ? ? ? ? ? ? ? ? 2、transient標(biāo)注的變量,序列化時(shí)會(huì)被跳過

? ? ? ? ? ? ? ? ? ? ? 3、類序列化被還原之后,由于transient標(biāo)注的變量在序列化時(shí)被跳過了,所以會(huì)給個(gè) 默認(rèn)值? null。primitive主數(shù)據(jù)類型數(shù)據(jù)的默認(rèn)值為0、false.

? ? ? ? ? ? ? ? ? ? ? 4、當(dāng)對(duì)象被實(shí)例化時(shí),該對(duì)象引用的實(shí)例對(duì)象也會(huì)被實(shí)例化。且所有被引用的對(duì)象也會(huì)被實(shí)例化。




? ? 說句實(shí)在話,我在看書看博客后,自己寫一遍,還是有些東西寫不出來。歡迎大家指正,互相交流學(xué)習(xí)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容