Java中的類實現Serializable介面

2021-08-20 10:07:39 字數 873 閱讀 5894

序列化是將物件的狀態資訊(也就是例項變數) → 可以儲存或傳輸的格式 的過程。 

反序列化是通過從儲存或者網路讀取物件的狀態 → 重新建立該物件。

implements serializable只是為了標註該物件是可被序列化的。

serialversionuid

當建立乙個類並實現serializable之後,在你的類名上:alt+enter,intellij idea就會提示自動建立serialversionuid。該uid是在反序列化物件時,用來確認序列化與反序列化該物件所使用的類的版本是否相容的。比如:  private static final long serialversionuid = 4924539758954684144l;

實現serializable介面的類

1、那麼就代表這個類以及其子類是自動支援序列化和反序列化的,

2、序列化時,只對物件的狀態進行儲存,而不管物件的方法。如果乙個類沒有實現serializable介面,那麼預設是不能被序列化的,除非使用其他辦法。

3、如果乙個類實現了serializable介面,其父類沒有實現serializable介面,那麼父類必須有無參的構造器,並且父類中的狀態預設不能被序列化。

4、序列化的例項變數引用其他物件,則引用物件也會被序列化;

5、並非所有的物件都可以序列化。

在什麼情況下需要使用到serializable介面呢??

1、當想把的記憶體中的物件狀態儲存到乙個檔案中或者資料庫中時候;

2、當想用套接字在網路上傳送物件的時候;

3、當想通過rmi傳輸物件的時候;

Java中AyyarList類的基本實現

arraylist 底層用陣列實現,執行緒不安全,效率高。所以,查詢快,插入 刪除慢。一般用ayyaylist就夠了。linkedlist 基於鍊錶實現,執行緒不安全,效率高。所以,查詢慢,插入 刪除快。vector 基於陣列實現。執行緒安全的,效率低。只有在多執行緒情況時才是用vector。自己實...

java中LinkedList 集合類實現棧和佇列

across through over的區別 三者都有 穿過 通過 的意思,但用法各不相同。across多指從一定範圍的一邊到另一邊,且在物體的表面上或沿著某一條線的方向而進行的動作,其含義常與介詞on有關。如 the students ran across the playground into ...

MINA框架中的Serial串列埠通訊

由於我原先使用過rxtx做過串列埠開發測試,環境並無問題,windows7 64位下建立了兩個虛擬串列埠用於串列埠除錯,linux下也是使用xgcom串列埠除錯工具,其環境問題不在贅述。slf4j failed to load class org.slf4j.impl.staticloggerbin...