大战熟女丰满人妻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面試題精編版—構造函數和析構函數

開班信息

主站蜘蛛池模板: 日日噜噜噜夜夜爽爽狠狠69 | 亚洲七七久久精品中文国产 | 日本一级高清不卡视频在线 | 91视频精选 | 久久精品免视看国产陈冠希 | 四虎永久免费紧急入口 | 久久99一区 | 亚洲欧美一区二区久久 | 久久久久久久九九九九 | 在线播放色 | 毛片免费观看久久欧美 | 性欧美video另类3d | 国产一区二区日韩欧美在线 | 成人老司机深夜福利久久 | www.av毛片| 欧美成人性色 | 国产精品情侣久久婷婷文字 | 欧美人猛交日本人xxx | 久久久国产免费影院 | 欧美高清性粉嫩交 | 99999久爱视频在线观看 | 中国美女hdxxxxx | 亚洲第一毛片 | 操人网站| 欧美一级毛片免费看高清 | 手机在线看片国产日韩生活片 | 一级特黄色大片 | 国产在线视频www色 国产在线视频凹凸分类 | 亚洲成人国产精品 | 三级aaa黄特色 | 日本免费高清一级毛片 | 精品欧美一区二区三区四区 | 亚洲一区有码 | 伊人色视频 | 福利院肉动漫视频在线观看 | 一级爱 | 欧美成人午夜视频 | 四虎4hutv永久在线影院 | 精品久久久久久亚洲 | 毛茸茸free牲交 | 综合亚洲欧美日韩一区二区 |