2016-09-04 75 views
3

我在面試中遇到了這個問題。請幫我找到答案。問題是可以以任何方式序列化一個瞬態變量?瞬態變量可以以任何方式序列化嗎?

+4

通過實現自己['的readObject()'/'的writeObject()'](http://www.oracle.com/technetwork/articles/java/javaserial-1536170.html) –

回答

8

statictransient字段默認情況下不會被序列化。

然而,它們可以如果

  • 相同的對象是經由串行化字段訪問被序列化。
  • 該對象在readObject/writeObject或readExternalizable/writeExternalizable中被序列化。
  • 您使用的是有不同的規則不同的序列化庫(我不知道其中任何一個序列化static領域,雖然我還錯誤地寫了這樣一個庫一次)

通常一個字段由transient意思它不應該是序列化的,雖然有時這可能是因爲

  • 類型不Serializable
  • 你不想使用默認序列化。
+0

由於彼得。我讀過的某個地方可以使用加密技術對其進行序列化。你對此有任何想法。 – RoyalTiger

+0

@RoyalTiger加密只有在對象已被序列化爲字節流後才能進行加密,這使得添加任何信息爲時已晚。 –

相關問題