Javaの一時的:何、なぜ、どのように機能するのか?



Transient in Javaは、シリアル化で使用されるキーワードです。変数の値をファイルに保存したくない場合に使用されます

Transient in Javaは、メンバー変数がバイトのストリームに永続化されるときにシリアル化されないようにマークするために使用されます。このキーワードは、セキュリティ上の制約を満たすために重要な役割を果たします。 。の元の値を無視します 変数 その変数のデフォルト値を保存します 。

Javaでstringbufferを使用する方法

この記事で説明するトピックは次のとおりです。





始めましょう!

JavaのTransientキーワードとは何ですか?

Transientは基本的に、シリアル化に使用される変数修飾子です。さて、シリアル化とは何ですか? Javaでのシリアル化 オブジェクトの状態をバイトストリームに変換する際に使用されるメカニズムです。シリアル化の時点で、特定の変数の値をファイルに保存したくない場合は、transientキーワードを使用します。



構文

プライベートトランジェント

または

一時的なプライベート

データメンバーを一時的なものとして定義した場合、そのデータはシリアル化されません。これは、としてマークされたすべてのフィールドが 一時的 シリアル化されません。このtransientキーワードを使用して、一時変数がオブジェクトの永続状態の一部ではないことをJava仮想マシン(JVM)に示すことができます。



JavaのTransientについて理解するための非常に基本的な例を書いてみましょう。

クラスDemoはSerializableを実装します{//ヒューマントランジェントをプライベートトランジェント文字列にするヒューマントランジェント整数//他のフィールドをシリアル化プライベート文字列名、アドレスDate dob //残りのコード}

ここでは、Serializableを実装するDemoというクラスを作成しました。 Demoクラスの年齢データメンバーは一時的なものとして宣言されており、その値はシリアル化されません。ただし、オブジェクトを逆シリアル化すると、 一時変数のデフォルト値を取得します。

トランジェント修飾子が使用されるのはなぜですか?

Transient in Javaは、フィールドがシリアル化プロセスの一部であってはならないことを示すために使用されます。

修飾子Transientをクラスのメンバー変数に適用して、これらのメンバー変数のシリアル化をオフにすることができます。一時的としてマークされているすべてのフィールドはシリアル化されません。この一時的なキーワードを使用して、 Java仮想マシン 一時変数はオブジェクトの永続状態の一部ではないこと。

この質問が頭の中で実行されている可能性があります。このトランジェントをJavaでいつ使用するのですか?

はであり、Javaで関係があります

これに対する答えは次のようになります。

  1. このTransientキーワードは、クラスのインスタンス内の他のフィールドから派生/計算されたフィールドがある場合に使用できます。
  2. JDKまたはアプリケーションコード内で「Serializable」としてマークされていないフィールドで使用します。これは、Serializableインターフェースを実装しないクラスは、シリアル化可能なクラス内で参照され、シリアル化できず、「java.io.NotSerializableException」例外をスローするためです。これらのシリアル化できない参照は、前に「一時的」とマークする必要があることに注意してください メインクラスのシリアル化。

FinalキーワードでTransientを使用する方法は?

Transient in Javaは、 最終キーワード なぜなら、他の人には一般的には当てはまらない、さまざまな状況で異なる動作をするからです。 Javaのキーワード

この例を見てください。

private String firstName private String lastName //最終フィールド1public finaltransient String pass = 'password' //最終フィールド2publicfinalトランジェントLocklock = Lock.getLock( 'demo')

これで、シリアル化(書き込み/読み取り)を再度実行すると、次の出力が得られます。

ケニー
強い
パスワード
ヌル

これは、トランジェントへの「パス」をマークしたにもかかわらず、そのフィールドがシリアル化されたためです。同様の宣言の場合、ロックはシリアル化されませんでした。その理由は、最終フィールドが定数式として評価されるときはいつでも、これは、transientキーワードの存在を無視してJVMによってシリアル化されます。

過渡と揮発性の違い

これは、 。 Javaのtransientキーワードとvolatileキーワードの違いは何ですか?

揮発性 とTransientは、で使用される2つのまったく異なるキーワードです。 。 Transientキーワードは、Javaオブジェクトのシリアル化中に使用されます。 Volatileは、複数のスレッドによって変更された変数の可視性に関連しています。

これらのキーワード間の唯一の類似点は、それらがあまり使用されていないか珍しいキーワードであり、public、static、finalほど人気が​​ないことです。

これで、JavaのTransientについて学習したこの記事の終わりになります。このチュートリアルで共有されているすべてのことを明確に理解してください。

「TransientinJava」に関するこの記事が関連していると感じた場合は、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社が世界中に広がっています。

Javaのインターフェースとクラスの違い

私たちはあなたの旅のあらゆるステップを支援するためにここにいます。このJavaインタビューの質問に加えて、Java開発者になりたい学生や専門家向けに設計されたカリキュラムを考え出します。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやSpringなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。

ご不明な点がございましたら、「TransientinJava」のコメントセクションでお気軽にご質問ください。喜んでお答えいたします。