需要序列化的場景:
1.物件需要儲存到資料庫或者檔案中
2.使用網路傳輸這個物件的時候
3.通過rmi傳輸物件的時候
序列化需要的注意點:
1.物件的非靜態成員變數將會被儲存,當然包含許可權為private的變數(這就使得這個物件的private域失去了保護),還有成員方法也不能被儲存
2.如果乙個物件的成員變數也是乙個物件,那麼這個成員變數中的資料成員也會被序列化
3.只要這個物件中滿足一些不可序列化的條件,那麼整個序列化的操作就會失敗
實現方法:
實現 serializable 介面即可
最後關於serialversionuid做一下解釋:
序列化和反序列化操作需要相同的id,通常id設定為1l,預設情況下會隨機生成乙個long型的數字。
JAVA序列化與反序列化的意義
1 將物件或者異常等寫入檔案,通過檔案傳輸資訊。2 將物件或者異常通過網路進行傳輸。3 把記憶體中的物件狀態儲存到乙個檔案中或者資料庫中時。序列化可以通過實現serializable 介面 或者 externalizable介面實現。為什麼方法 類變數 即static關鍵字修飾的變數 不能被序列化?...
序列化與反序列化,Java實現
public class serializingutil catch ioexception e finally catch ioexception e return byteout.tobytearray 功能簡述 將位元組陣列反序列化為實體bean.param source 需要進行反序列化的位...
java 序列化 反序列化
序列化 bytearrayoutputstream bytearrayoutputstream new bytearrayoutputstream objectoutputstream objectoutputstream null try catch exception e finally byt...