
? ?
java serializable是什么?讓我們一起來(lái)了解一下吧!
java serializable是java的序列化。java序列化是把java對(duì)象轉(zhuǎn)變?yōu)樽止?jié)序列的過(guò)程,從另一方面來(lái)說(shuō),序列化是一種可以保存在內(nèi)存中的各種對(duì)象的狀態(tài)。

序列化的應(yīng)用場(chǎng)景:
1.當(dāng)你想把的內(nèi)存中的對(duì)象狀態(tài)保存到一個(gè)文件中或者數(shù)據(jù)庫(kù)中時(shí)候;
2.當(dāng)你想用套接字在網(wǎng)絡(luò)上傳送對(duì)象的時(shí)候;
3.當(dāng)你想通過(guò)RMI傳輸對(duì)象的時(shí)候;
需要注意的有:
1.序列化時(shí),只對(duì)對(duì)象的狀態(tài)進(jìn)行保存,而不管對(duì)象的方法;
2.當(dāng)一個(gè)父類實(shí)現(xiàn)序列化,子類自動(dòng)實(shí)現(xiàn)序列化,不需要顯式實(shí)現(xiàn)Serializable接口;
3.當(dāng)一個(gè)對(duì)象的實(shí)例變量引用其他對(duì)象,序列化該對(duì)象時(shí)也把引用對(duì)象進(jìn)行序列化;
4.不是所有的對(duì)象都可以序列化。
實(shí)戰(zhàn)演練,具體代碼如下:
import?java.io.*;
??
public?class??Box?implements?Serializable??
{??
????private?int?width;??
????private?int?height;??
??
????public?void?setWidth(int?width){??
????????this.width??=?width;??
????}??
????public?void?setHeight(int?height){??
????????this.height?=?height;??
????}??
??
????public?static?void?main(String[]?args){??
????????Box?myBox?=?new?Box();??
????????myBox.setWidth(50);??
????????myBox.setHeight(30);??
??
????????try{??
????????????FileOutputStream?fs?=?new?FileOutputStream("foo.ser");??
????????????ObjectOutputStream?os?=??new?ObjectOutputStream(fs);??
????????????os.writeObject(myBox);??
????????????os.close();??
????????}catch(Exception?ex){??
????????????ex.printStackTrace();??
????????}??
????}??
??????
}以上就是小編今天的分享了,希望可以幫助到大家。
