Javaの外部化とは何ですか? インターフェース、機能、例
公開: 2021-02-04外部化とは何かに答えるJavaでは、シリアル化をカスタマイズするために実装される一般的なメカニズムであると言えます。 これは、Javaのシリアル化がそれほど効率的ではないという主な側面で使用されるため、複数のプロパティと属性を保持する肥大化したオブジェクトがある場合は、外部のカスタマイズパラメーターが使用されます。
目次
シリアル化と外部化とは何ですか?
シリアル化-オブジェクトのデータをバイトストリームに構成するために使用されるメカニズムであり、プロセスは主にRMI、JMS、JPAタイプのテクノロジで実装されます。 もう1つのタイプは、シリアル化と逆シリアル化と呼ばれる機能とプロセスを逆にするメカニズムで構成されます。 名前が示すようにシリアル化の機能は、Javaに存在するオブジェクトをシリアル化することです。
外部化-シリアル化メカニズムをカスタマイズするために使用されるメカニズムとして定義されます。 ブロートウェアは高速で応答性が高くありません。 プロセス全体をカスタマイズするのに十分な効率と応答性を備えた優れたメカニズムが必要になります。
シリアル化では、Javaプログラミングマシンはオブジェクトの書き込みと読み取りのプロセスに応答します。 これは、プログラマーがシリアル化プロセスについて心配する必要がなくなるため、よく使用されるシナリオです。 このような場合、デフォルトで機能するシリアル化は、ログインIDやパスワードなどの重要な資格情報を保存することを意図していません。
ただし、プログラマーが同じクレデンシャルを保護する必要がある場合、外部化は、シリアル化中にデータの読み取りおよび書き込みオブジェクトのデータの処理を完全に制御できるようにする目的を証明します。
チェックアウト:人気のあるJavaフレームワーク

外部化可能なインターフェース
インターフェイスは、シリアル化および逆シリアル化中にオブジェクトの読み取りと書き込みをモデレートする必要がある場合に実装されます。 したがって、java.io.externalisableインターフェイスを備えたオブジェクトクラスの必要性は、ユーザーとプログラマーがwriteExternal()で書き込み、readExternal()メソッドでオブジェクトを読み取ることにより、オブジェクトの状態にカスタマイズされたコードを実装するのに役立ちます。
より良いアイデアのために、両方の方法を理解しましょう
readExternal()は、オブジェクトが入力を受け取るときに機能します。 オブジェクト、文字列、および配列に対してwrite Objectメソッドを呼び出すことにより、データ入力のメソッドによってコンテンツが元のコンテキストに復元されます。
writeExternal()は、オブジェクトが入力を受け取るときに機能し、データ出力のメソッドは、オブジェクト、文字列、および配列に対してreadObjectメソッドを呼び出すことによって内容を保存します。
特徴
外部化は、外部の読み取りメソッドと外部の書き込みメソッドをバイパスすることにより、アプリケーションにロジック制御を実装するのに役立ちます。
外部化は、Javaオブジェクトの外部化中に変数を排除するための良心とロジックを備えたコードを作成できるようになったため、プログラマーにとって効果的な方法であることが証明されました。
外部化メソッドを使用すると、実装アプローチを完全に手動で制御でき、オブジェクトのシリアル化と継承も暗示できます。
また読む:Javaインタビューの質問
例
// インターフェース
java.io.*をインポートします。
クラスCarはExternalizable{を実装します
static int age;
文字列名;
int年;
パブリックカー()
{{
System.out.println( "デフォルトのコンストラクターが呼び出されました");
}
Car(String n、int y)
{{
this.name = n;
this.year = y;
年齢=10;
}
@オーバーライド
public void writeExternal(ObjectOutput out)
IOExceptionをスローします
{{
out.writeObject(name);
out.writeInt(age);
out.writeInt(year);
}
@オーバーライド
public void readExternal(ObjectInput in)
IOException、ClassNotFoundExceptionをスローします
{{
name =(String)in.readObject();
年=in.readInt();
年齢=in.readInt();

}
@Override public String toString()
{{
return(“ Name:” + name +“ \ n”
+「年:」+年+「\n」
+「年齢:」+年齢);
}
}
パブリッククラスExternExample{
public static void main(String [] args)
{{
車車=新車(“ Shiney”、1995);
車newcar=null;
//車をシリアル化します
試す {
FileOutputStream fo
= new FileOutputStream(“ gfg.txt”);
ObjectOutputStream so
= new ObjectOutputStream(fo);
so.writeObject(car);
so.flush();
}
キャッチ(例外e){
System.out.println(e);
}
//車を逆シリアル化します
試す {
FileInputStream fi
= new FileInputStream(“ gfg.txt”);
ObjectInputStream si
= new ObjectInputStream(fi);
newcar =(Car)si.readObject();
}
キャッチ(例外e){
System.out.println(e);
}
System.out.println( "元の車は:\ n" +車);
System.out.println( "新しい車は:\ n" + newcar);
}
}
出力:
呼び出されるデフォルトのコンストラクタ
元の車は次のとおりです。
名前:シャイニー
年:1995
年齢:10
新しい車は次のとおりです。
名前:シャイニー
年:1995
年齢:10
この例は、externalisableオブジェクトが再作成されるときに、インスタンスがパブリックの引数なしコンストラクターでトリガーされるときに、 readExternalメソッドを呼び出す傾向があることを示す典型的な例です。 したがって、外部化可能なインターフェイスの助けを借りて、Javaクラスのアナロジーを完全に制御できます。

したがって、externalizeを使用する場合、すべてのフィールド状態が記述されたとおりの順序であることが不可欠であり、重要です。
また読む: Javaプロジェクトのアイデアとトピック
世界のトップ大学からオンラインでソフトウェア開発コースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
結論
したがって、Javaでの外部化とは何かについて尋ねられると、それが提供するカスタムシリアル化のために重要であり、シリアル化をカスタマイズするための完全な制御と実装アプローチを提供することができます。 readExternalメソッドとwriteExternalメソッドは、クラスによって上書きされる必要があります。 シリアル化よりもはるかに優れたパフォーマンスを提供します。
upGradに接続して、フルスタック開発に関するExecutive PGプログラムコースを介してJavaをより深く深く理解し、10,000ルピーから始めてオンライン講義にアクセスできる学習曲線を強化します。
Javaのインターフェースとは何ですか?
インターフェイスはJavaのタイプの1つであり、実装はなく、メソッドシグネチャのグループにすぎません。 このインターフェースは作成できません。 この事実の背後にある理由は、これらのインターフェースが単なるメソッドシグネチャのコレクションであるためです。 インターフェイスを作成すると、新しいメソッドを追加し続けることはできません。 たとえば、クラスの外部からクラスの動作を変更するのに役立つメソッドをjava.Aspectインターフェースに追加することはできません。 これはオブジェクト指向プログラミングの原則に反するためです。 実際には、インターフェースはJavaアノテーション拡張に他なりません。 コードを軽量に保つために、インターフェースを使用する必要があります。
Javaの外部化とは何ですか?
外部化とは、オブジェクトの状態を変更可能にする機能です。 外部化は、シングルトン、ファクトリ、プロトタイプなどのデザインパターンで使用され、依存性逆転の原則とインターフェイス分離の原則を実装します。 外部化はJavaの組み込み機能ではありませんが、その機能をクラスに追加することは可能です。 外部化は、Javaでオブジェクトを文字ストリームに変換するプロセスです。 これは、オブジェクトをバイナリ形式でファイルに保存するために使用されるメカニズムです。 これは、バイトのシーケンスとしてファイルに文字データを格納するために使用されます。 データは、Javaプログラムの後続の実行で読み取ることができます。
Javaプログラミング言語の特徴は何ですか?
Javaは、1995年にSunMicrosystemsによって最初にリリースされたプログラミング言語およびコンピューティングプラットフォームです。それ以来、複数のアップデートがリリースされており、最新バージョンはJava 11です。Javaは、Java仮想マシンをサポートできる任意のプラットフォームで実行することを目的としていました。プログラミングプラットフォームでもあります。 ブラウザだけの環境で実行できますが、アプリケーションプログラミングインターフェイスまたはAPIと呼ばれる一連のプログラムの下で、さまざまなバージョンのJava仮想マシン(JVM)で最も一般的に使用されます。