什麼是Java序列化?如何實現序列化?

AlbenXie發表於2018-09-27

一、什麼是序列化: 序列化理解成“打碎”是可以的,不過在書本上的名詞就是將物件轉換成二進位制。    

二、在java中如何實現序列化: 首先我們要把準備要序列化類,實現 Serializabel介面 例如:我們要Person類裡的name和age都序列化

1

2

3

4

5

6

7

8

9

10

11

12

13

14

import java.io.Serializable; 

public class Person implements Serializable {

    //本類可以序列化

    private String name ; 

    private int age ;

    public Person(String name,int age)

    

        this.name = name ; this.age = age ;

    

    public String toString()

    {

        return "姓名:" this.name + ",年齡" this.age ;

    

}

 然後:我們將name和age序列化(也就是把這2個物件轉為二進位制,統族理解為“打碎”)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

package org.lxh.SerDemo; 

import java.io.File;

import java.io.FileOutputStream; 

import java.io.ObjectOutputStream ;

public class ObjectOutputStreamDemo

{

    //序列化 

    public static void main(String[] args) throws Exception 

    {

        //序列化後生成指定檔案路徑 

        File file = new File("D:" + File.separator "person.ser") ;

        ObjectOutputStream oos = null ;

        //裝飾流(流)

        oos = new ObjectOutputStream(new FileOutputStream(file)) ; 

        //例項化類 

        Person per = new Person("張三",30) ;

        oos.writeObject(per) ;

        //把類物件序列化

        oos.close() ;

    

}

 序列化是將物件狀態轉換為可保持或傳輸的格式的過程。說明白點就是你可以用物件輸出流輸出到檔案.如果不序列化輸出的話.很可能會亂!

 實現方式是實現java.io.Serializable介面.這個介面不需要實現任何具體方法.只要implements java.io.Serializable 就好了

 

java中的序列化機制能夠將一個例項物件(只序列化物件的屬性值,而不會去序列化什麼所謂的方法。)的狀態資訊寫入到一個位元組流中使其可以通過socket進行傳輸、或者持久化到儲存資料庫或檔案系統中;然後在需要的時候通過位元組流中的資訊來重構一個相同的物件。

一般而言,要使得一個類可以序列化,只需簡單實現java.io.Serializable介面即可

相關文章