2016-04-19 100 views
1

正如我們都知道java中的序列化是一種將對象狀態寫入字節流的機制。如果我們不在Java中序列化對象會發生什麼?

它主要用於通過網絡發送對象的狀態。但是當對象沒有被序列化並且通過網絡發送時會發生什麼。

它會給出錯誤嗎?

謝謝

+9

*但是當對象沒有被序列化並且在網絡上傳輸對象的狀態時會發生什麼** **如何**? –

+1

http://stackoverflow.com/questions/447898/what-is-object-serialization – AdamSkywalker

+2

目前還不清楚你在這裏問什麼。你並不總是需要序列化/反序列化。如果你通過網絡發送一個對象,那麼它將被序列化以通過字節流發送它。這就是序列化的要點,正是這樣才能通過網絡發送。 – ManoDestra

回答

3

我們使用對象序列化主要有兩個原因:
1.經由網絡的通信
2.輕型持久化的對象

的檔案在我回應什麼錯誤你會得到,讓我掏

爲什麼我們需要序列化?

這個的主要驅動因素是我們的網絡基礎設施和理解比特和字節而不是JAVA對象的硬件磁盤。序列化有助於將Java對象的圖形轉換爲用於存儲或傳輸的字節數組。所有這一切都是由於ObjectInputStream/ObjectOutputStream類,全保真元數據以及程序員通過使用Serializable標記接口標記其類來「選擇加入」此過程的意願。

如果您嘗試通過網絡發送非序列化的對象,會發生什麼?

遍歷圖時,可能遇到不支持Serializable接口的對象。在這種情況下,將拋出NotSerializableException,並將標識不可序列化對象的類。

+0

非常棒..謝謝:) –

+0

顯然,當你說'序列化'時,你都意味着'Serializable'。這不是這個意思。 – EJP

+0

很好的解釋。 – Roxy

相關問題