Javaシーケンス化の1つ:JAVAシーケンス化とは

1460 ワード

ここ数日リーダーの依頼でjavaシーケンス化の説明資料を作りました.
技術的な内容はありませんが、ここで共有してみましょう.
1,シーケンス化とは
シーケンス化はJAVA分野の固有名詞ではなく、コンピュータ世界でよく見られる概念である.しかし,コンピュータ世界の多くの概念のように,シーケンス化には明確な定義はない.大まかに説明すると、シーケンス化には以下のような特徴があります.     
①シーケンス化前のオブジェクトは、通常、瞬時、動的、可変である.シーケンス化後の結果は通常、永続的、静的、可変である.
②シーケンス化の目的は、通常、オブジェクトを保存したり、転送したりすることである.
③シーケンス化プロセスは、通常、逆シーケンス化プロセスに対応する.
2,Java Serializable
Java Serializableは、Javaオブジェクトのシーケンス化を意味します.Javaオブジェクトのメタデータとそのステータスをバイナリ配列として保存することを指します.必要に応じて、バイナリ配列を解析し、オブジェクトを再生成して状態を復元できます.ここでは,対象となる状態を重点的に説明する.オブジェクトのステータスは、実際にはメンバー変数の値であるため、オブジェクトのステータスを保存することは、オブジェクトの値を保存することです.最も簡単なJavaオブジェクトを考慮します.
public class Person  {
 private String name;
 private int age;

 public Person() {

 }

 public Person(String str, int n) {
  System.out.println("Inside Person's Constructor");
  name = str;
  age = n;
 }

 String getName() {
  return name;
 }

 int getAge() {
  return age;
 }
}

あるオブジェクトについて、メタデータ(クラス定義)+ステータス(name,age)を知る限り
オブジェクトのすべての詳細を知ることに相当し、オブジェクトをいつでも復元できることを意味します.
3、その他
どう見ても、シーケンス化は簡単そうですが、メンバー変数を保存することにほかならないでしょう.皆さんはあまり早く喜ばないでください.実際にJavaのシーケンス化メカニズムは非常に複雑です.本人から見れば、Javaのシーケンス化があまり使われないのは、複雑さが重要な原因です.
技術的に言えば、Javaのserializableメカニズムは実際には以下の2つの技術ルートを提供している.
①オブジェクト状態の保存・復元方法を実現した.
2方法またはプロセスのリモートコール方法を実現した.この点はRMIまたはRPCとともに議論できる.