3

私のインタビューで、シリアライゼーションを達成する方法について1つの質問があり、次のように答えました

public class SerializationSample {
    public static void main(String args[]) {
        ...........
        FileOutputStream fos = new FileOutputStream(outFile);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(serializableObject);
        ............
}
class SerializationBox implements Serializable {
    ............
    ............
}

しかし、インタビュアーは、これはオブジェクト全体をシリアライズし、2 つの質問をしたと言いました。

  1. 単一のオブジェクトをシリアライズしたい場合、どのようにコードを記述しますか?
  2. シリアル化中に long_integer id を使用するのはなぜですか?

この質問の答えを見つけるのを手伝ってください

4

1 に答える 1

1

同様のすでに回答された質問からエッセンスを引用させてください

serialVersionUID はクラスのバージョンを表し、クラスの現在のバージョンが以前のバージョンと下位互換性がない場合は、それをインクリメントする必要があります。

自動生成された UID は、クラス名、実装されたインターフェイス、およびすべてのパブリック メンバーと保護されたメンバーに基づいて生成されます。これらのいずれかを変更すると、serialVersionUID が変更されます。したがって、クラスの複数のバージョンがシリアル化されないことが確実な場合にのみ、それらをいじる必要はありません (プロセス間または後でストレージから取得されます)。

そのリンクにアクセスして、いつものように Web を検索することをお勧めします。

それが役立つことを願っています。

于 2013-10-02T09:18:59.833 に答える