大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

2016Java面試題精編版—序列化


面試題:如何實現Java的序列化?

Java培訓

答案:序列化一個對象還是比較簡單的,只要讓它實現serializable接口就行了。但是,當余元引入序列化概念之后,它的很多標準類庫的類,包括primitivewrapper類、所有的容器類,以及別的很多類,都會相應的發生改變,甚至連class對象都會被序列化。

要想序列化對象,必須先創建一個outputstream,然后把它嵌進objectoutputstream。這時就能用writeobject()方法把對象寫入outputstream,。讀的時候需要把inputstream嵌到objectinputstream中,然后在調用readobject()方法。不過這樣讀出來的只是一個objectreference,因此,在用之前,還得線下傳。對象序列化不僅能保存對象的副本,而且還會跟著對象中reference把它所引用的對象也保存起來,然后再繼續跟蹤那些對象的reference,以此類推。這種情形常被稱為“單個對象所連接的‘對象網’”。這個機制所涵蓋的范圍不僅包括對象的成員數據,而且還包含數組里面的reference。如果要自己實現對象序列化,那么編寫跟蹤這些鏈接的程序將會是一件非常痛苦的任務。但是,Java的對象序列化就能準確無誤地做到這一點,毫無疑問,它的遍歷算法是做過優化的。

 

知識拓展:Java的“對象序列化”能將一個是想了serializable接口的對象轉換成一組byte,這樣日后要用這個對象的時候,就能把這些byte數據恢復出來,并據此重新構建那個對象。這一點甚至在擴網絡的環境下也是如此,這就意味著序列化機制能自動補償操作系統方面的差異。也就是說,可以在Windows創建一個對象,序列化之后,在他通過網絡傳到Unix上,然后在哪里進行重建。不用擔心在不同的平臺上數據是怎樣表示的,以及byte順序怎樣,或者別的什么細節。

對象序列化能實現“輕量級的persistence”。所謂的persistence,是指對象的生命周期不是由程序是否運行決定的,在程序的兩次調用之間對象仍然還活著。通過“將做過序列化處理的對象寫入磁盤,等到程序再次運行的時候再把它讀出來”,可以達到persistence的效果。之所以說“輕量級”,是以內不能用想“persistent”這樣的關鍵詞來直接定義一個對象,然后讓系統去處理所有的細節。相反,必須明確的進行序列化和解序列化。

之所以要在語言里加入對象序列化,是因為要用它來實現兩個重要的功能。Java的遠程方法調用能像調用自己機器上的對象那樣去調用其他機器上的對象。當向遠程對象傳遞消息的時候,就需要通過對象序列化來傳送參數和返回值。對Java Bean來說,對象序列化也是必不可少的。Bean的狀態信息通常實在設計時配置的,這些狀態信息必須保存起來,供程序啟動的時候用,對象序列化就負責這個工作。

更多Java知識Java視頻Java教程盡在動力節點Java培訓,關注動力節點官方微信,獲得一手Java面試題

 

上一篇:2016Java面試題精編版—內存管理
下一篇:2016Java面試題精編版—構造函數和析構函數

開班信息

主站蜘蛛池模板: 一级淫片免费看 | 不卡影视 | 美利坚永久精品视频在线观看 | 久久久久久久久久综合情日本 | 国产精品久久久久影院色 | 亚洲欧美日韩在线不卡中文 | 国产精品福利视频 | 9i9精品国产免费久久 | 深夜男人影院 | 国产精品国产三级国产a | 欧美在线视频在线观看 | 一级毛片播放 | 色老头网站久久网 | 精品中文字幕乱码一区二区 | 五月婷婷伊人 | 欧美jizzhd极品欧美 | 久久久久这里只有精品 | 精品国产乱码一区二区三区麻豆 | 在线小视频国产 | 精品久久久久久免费影院 | 精品免费tv久久久久久久 | 玖玖在线资源 | 久久在线视频免费观看 | 成人影院观看 | 日韩黄色网页 | 国产专区在线播放 | 欧美一区二区三区在线 | 亚洲精品乱码久久久久久中文字幕 | 国产精品入口麻豆午夜 | 成人免费久久精品国产片久久影院 | 国产网红在线视频 | 久久精品亚洲欧美日韩久久 | 欧洲在线免费视频 | 欧美成人私人视频88在线观看 | 久久精品这里只有精品 | 亚洲 激情 | 99热爱久久99热爱九九热爱 | 99热这里只有精品在在 | 性欧美疯狂猛交69hd | 天天做人人爱夜夜爽2020毛片 | 欧美一区二区三区国产精品 |