2017-02-06 59 views
-3

我想明白了,當你標記一個類爲Serializable一個類實例化(在我的情況記錄器)的靜態不會對其進行序列化爲什麼我們序列化java類並聲明一個變量static不會序列化它呢?

+0

不知道你在問什麼。如果你想確保一個字段沒有被序列化,使用* transient *關鍵字。 – GhostCat

+3

如果你連載一個類的實例,靜態字段不會因爲它不是實例的一部分被序列化。那是你在說什麼? – khelwood

+0

'static'字段不是實例的一部分。 –

回答

0

,您所請求的Java運行時序列化對象例如你的班級。這有助於將對象中的數據轉換爲可持久的格式以存儲或通過strean發送。

在另一方面,static成員不屬於任何階級和下降序列化的範圍之外。所以,這標誌着你的Serializable類不會影響您的任何類的static成員。

當你反序列化一個對象,它的所有類的static成員已經在其他JVM加載類時初始化。所以發送靜態字段數據作爲序列化對象的一部分是沒有意義的。

詳情請參閱this article

希望這會有所幫助!

相關問題