Javaシーケンス化とは?シーケンス化が必要な場合は?

2142 ワード

シーケンス化:Javaオブジェクトをバイトストリームに変換するプロセス.
逆シーケンス化:バイトストリームをJavaオブジェクトに変換するプロセス.
Javaオブジェクトをネットワーク上で転送または永続化してファイルに格納する必要がある場合は、Javaオブジェクトをシーケンス化する必要があります.
シーケンス化の実装:クラスはSerializableインタフェースを実装し、このインタフェースは実装する方法がない.Serializableインタフェースを実装するのは、jvmというクラスのオブジェクトがシーケンス化できることを示すためである.
注意事項:
クラスをシーケンス化できます.サブクラスはstaticおよびtransientとして宣言されたメンバー変数にシーケンス化され、シーケンス化されません.staticメンバー変数はクラスレベルを記述する属性であり、transientは一時データの逆シーケンス化読み出しシーケンス化オブジェクトの順序が一致することを示す
具体的な使用
package constxiong.interview;
 
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
 
/**
 *      ,    
 * @author ConstXiong
 * @date 2019-06-17 09:31:22
 */
public class TestSerializable implements Serializable {
 
    private static final long serialVersionUID = 5887391604554532906L;
    
    private int id;
    
    private String name;
 
    public TestSerializable(int id, String name) {
        this.id = id;
        this.name = name;
    }
    
    @Override
    public String toString() {
        return "TestSerializable [id=" + id + ", name=" + name + "]";
    }
 
    @SuppressWarnings("resource")
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //   
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("TestSerializable.obj"));
        oos.writeObject("     ");
        oos.writeObject(618);
        TestSerializable test = new TestSerializable(1, "ConstXiong");
        oos.writeObject(test);
        
        //    
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("TestSerializable.obj"));
        System.out.println((String)ois.readObject());
        System.out.println((Integer)ois.readObject());
        System.out.println((TestSerializable)ois.readObject());
    }
 
}

印刷結果:
     
618
TestSerializable [id=1, name=ConstXiong

読んでくれてありがとう.もしこのブログがあなたに役に立つと思ったら、もっと多くの人に見せてください.毎日楽しく過ごされますように.