色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

原創(chuàng)-關(guān)于java中的對象序列化

瀏覽:71日期:2024-07-02 08:44:05
內(nèi)容: java對象序列化機(jī)制一般來講有兩種用途:1.需要將對象的狀態(tài)保存到文件中,而后能夠通過讀入對象狀態(tài)來重新構(gòu)造對象,恢復(fù)程序狀態(tài)2.使用套接字在網(wǎng)絡(luò)上傳送對象的程序來說,是很有用的。 我們通過讓類實(shí)現(xiàn)java.io.Serializable 接口可以將類序列化。這個(gè)接口是一個(gè)制造者(marker)接口。也就是說,對于要實(shí)現(xiàn)它的類來說,該接口不需要實(shí)現(xiàn)任何方法。它主要用來通知Java虛擬機(jī)(JVM),需要將一個(gè)對象序列化。 對于這個(gè),有幾點(diǎn)我們需要明確:1.并非所有類都可以序列化,在cmd下,我們輸入serialver java.net.socket,可以得到socket是否可序列化的信息,實(shí)際上socket是不可序列化的。2.java有很多基礎(chǔ)類已經(jīng)實(shí)現(xiàn)了serializable接口,比如string,vector等。但是比如hashtable就沒有實(shí)現(xiàn)serializable接口。 將對象讀出或者寫入流的主要類有兩個(gè): ObjectOutputStream與ObjectInputStream 。ObjectOutputStream 提供用來將對象寫入輸出流的writeObject方法, ObjectInputStream提供從輸入流中讀出對象的readObject方法。使用這些方法的對象必須已經(jīng)被序列化的。也就是說,必須已經(jīng)實(shí)現(xiàn)Serializable接口。如果你想writeobject一個(gè)hashtable對象,那么,會得到一個(gè)異常。 下面舉個(gè)例子: import java.io.*;public class testser implements Serializable { public int ii; testser() { } testser( int param ) { ii = param; }}testser是一個(gè)實(shí)現(xiàn)了serializable接口的類。 讀寫這個(gè)序列化過的類:import java.io.*;public class Ser { private static String datafile; datafile='ser.data'; public static void main( String[] argv ) { System.out.println( 'Java Serialization Demo.' ); SerData data; try { ObjectInputStream in = new ObjectInputStream( new FileInputStream( datafile )); data = (SerData) in.readObject(); in.close(); } catch (Exception e) { data = new testser(); } System.out.println( 'Original data: ii = ' + data.ii ); data.ii++; try { ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream( datafile ) ); out.writeObject( data ); out.flush(); out.close(); } catch (Exception e) { System.out.println( e ); } }}還有可以通過套接字傳遞序列化對象,大概類似。看到這里或許很多人都會有個(gè)疑問,是否所有的對象都可以序列化呢?當(dāng)然是不可以的了,至于為什么不可以,那就有很多原因了,比如:1.安全方面的原因,比如一個(gè)對象擁有private,public等field,對于一個(gè)要傳輸?shù)膶ο?比如寫到文件,或者進(jìn)行rmi傳輸?shù)鹊?在序列化進(jìn)行傳輸?shù)倪^程中,這個(gè)對象的private等域是不受保護(hù)的.2.資源分配方面的原因,比如socket,thread類,如果可以序列化,進(jìn)行傳輸或者保存,也無法對他們進(jìn)行重新的資源分配,而且,也是沒有必要這樣實(shí)現(xiàn). 【matrix 原創(chuàng)】 轉(zhuǎn)載請注明來自Matrix.org.cn Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 久久久高清免费视频 | 日本高清免费视频色www | 国产伦码精品一区二区 | 国内精品久久久久久中文字幕 | 国产乱肥老妇精品视频 | 亚洲精品www久久久久久久软件 | 亚洲高清无在码在线无弹窗 | 99热久久精品免费精品 | 97精品国产91久久久久久久 | 99视频在线观看视频一区 | 写真片福利视频在线播放 | 在线免费公开视频 | 黄色国产免费观看 | 爱爱客影院在线影院gf发现 | 99精品欧美一区二区三区美图 | 亚州免费 | 成人免费在线视频 | 99久久精品免费精品国产 | 69视频在线观看xxxxx | 国产欧美在线观看不卡 | 色一级片 | 亚洲国产午夜看片 | 亚洲高清视频网站 | 亚洲国产成人在人网站天堂 | 欧美三级中文字幕 | 性欧美videos高清精品 | 热99re久久精品这里都是免费 | 欧洲freexxxx性 | 538在线视频二三区视视频 | 91大神在线精品视频一区 | 国产精品亚洲片在线不卡 | 成人在线综合网 | 综合亚洲一区二区三区 | 亚洲精品影院久久久久久 | 亚洲精品综合一区二区三区 | 欧美日韩视频免费播放 | 成人免费毛片网站 | 国产精品99久久免费观看 | 亚洲精品国产福利一区二区三区 | 草草视频在线播放 | 三级a毛片 |