java中類的序列化

2021-07-27 09:35:24 字數 839 閱讀 4780

一、序列化的含義是什麼?

序列化就是將乙個物件的狀態(各個屬性量)儲存起來,然後在適當的時候再獲得。 

序列化分為兩大部分:序列化和反序列化。

序列化是這個過程的第一部分,將資料分解成位元組流,以便儲存在檔案中或在網路上傳輸。反序列化就是開啟位元組流並重構物件。物件序列化不僅要將基本資料型別轉換成位元組表示,有時還要恢復資料。恢復資料要求有恢復資料的物件例項。

二、序列化的特徵:

如果某個類能夠被序列化,其子類也可以被序列化。宣告為static和transient型別的成員資料不能被序列化。因為static代表類的狀態, transient代表物件的臨時資料。

三、何時運用序列化?

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

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

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

四、在進行序列化時,需要注意什麼?

1)序列化時,只對物件的狀態進行儲存,而不管物件的方法;

2)當乙個父類實現序列化,子類自動實現序列化,不需要顯式實現serializable介面;

3)當乙個物件的例項變數引用其他物件,序列化該物件時也把引用物件進行序列化;

4)並非所有的物件都可以序列化,,至於為什麼不可以,有很多原因了,比如:

a.安全方面的原因,比如乙個物件擁有private,public等field,對於乙個要傳輸的物件,比如寫到檔案,或者進行rmi傳輸  等等,在序列化進行傳輸的過程中,這個物件的private等域是不受保護的。

b. 資源分配方面的原因,比如socket,thread類,如果可以序列化,進行傳輸或者儲存,也無法對他們進行重新的資源分  配,而且,也是沒有必要這樣實現。

java中序列化和反序列化

序列化 將物件轉換成字串行。反序列化 將字串行還原成物件。1 當想把記憶體中的物件儲存到檔案或者資料庫中的時候。2 當想用套接字在網路上傳輸物件的時候。3 當想通過rmi傳輸物件的時候。當我們定義乙個實體的時候,總是自然而然的實現序列化介面,生成序列化的id,但我們究竟什麼時候用到,如果不做以上操作...

java 序列化 反序列化

序列化 bytearrayoutputstream bytearrayoutputstream new bytearrayoutputstream objectoutputstream objectoutputstream null try catch exception e finally byt...

Java中物件序列化與反序列化

1.建立可序列化物件 public class student implements serializable public student string name,int age,int default1 public void addresscheck public string getname...