Transient in Java: Was, warum und wie funktioniert es?



Transient in Java ist ein Schlüsselwort, das bei der Serialisierung verwendet wird. Es wird verwendet, wenn Sie den Wert einer Variablen nicht in einer Datei speichern möchten

Transient in Java wird verwendet, um die Mitgliedsvariable zu markieren, die nicht serialisiert werden soll, wenn sie für Bytestreams beibehalten wird. Dieses Schlüsselwort spielt eine wichtige Rolle, um Sicherheitsbeschränkungen in zu erfüllen . Der ursprüngliche Wert von a wird ignoriert Variable und speichert den Standardwert dieser Variablen .

Im Folgenden werden die Themen behandelt, die in diesem Artikel behandelt werden:





Lass uns anfangen!

Was ist das Schlüsselwort Transient in Java?

Transient ist im Grunde ein Variablenmodifikator, der für die Serialisierung verwendet wird. Was ist nun Serialisierung? Serialisierung in Java ist ein Mechanismus, der zum Konvertieren des Status eines Objekts in einen Bytestrom verwendet wird. Wenn Sie zum Zeitpunkt der Serialisierung den Wert einer bestimmten Variablen nicht in einer Datei speichern möchten, verwenden Sie das Schlüsselwort transient.



Syntax ::

private vorübergehende

oder

vorübergehend privat

Wenn Sie ein Datenelement als vorübergehend definieren, wird es nicht serialisiert. Dies liegt daran, dass jedes Feld als markiert ist vorübergehend wird nicht serialisiert. Mit diesem Schlüsselwort transient können Sie der Java Virtual Machine (JVM) angeben, dass die transiente Variable nicht Teil des persistenten Status eines Objekts ist.



Schreiben wir ein sehr einfaches Beispiel, um Transient in Java zu verstehen.

Klasse Demo implementiert Serializable {// Mensch transient privat transient machen String human transient int age // andere Felder privat serialisieren String Name, Adresse Datum dob // Rest des Codes}

Hier habe ich eine Klasse namens Demo erstellt, die Serializable implementiert. Das Altersdatenelement der Demo-Klasse wird als vorübergehend deklariert, sein Wert wird nicht serialisiert. Aber wenn Sie das Objekt deserialisieren, Sie erhalten den Standardwert für eine transiente Variable.

Warum wird der Transient-Modifikator verwendet?

Transient in Java wird verwendet, um anzugeben, dass ein Feld nicht Teil des Serialisierungsprozesses sein soll.

Der Modifikator Transient kann auf Elementvariablen einer Klasse angewendet werden, um die Serialisierung für diese Elementvariablen zu deaktivieren. Jedes Feld, das als vorübergehend markiert ist, wird nicht serialisiert. Sie können dieses vorübergehende Schlüsselwort verwenden, um das anzuzeigen Java virtuelle Maschine dass die transiente Variable nicht Teil des persistenten Zustands eines Objekts ist.

Möglicherweise haben Sie diese Frage im Kopf. Wann soll dieser Transient in Java verwendet werden?

Die Antwort darauf wäre:

  1. Sie können dieses Schlüsselwort Transient verwenden, wenn Sie Felder haben, die von anderen Feldern innerhalb der Instanz einer Klasse abgeleitet / berechnet wurden.
  2. Verwenden Sie es mit Feldern, die im JDK oder im Anwendungscode nicht als 'serialisierbar' markiert sind. Dies liegt daran, dass Klassen, die keine serialisierbare Schnittstelle implementieren, innerhalb einer serialisierbaren Klasse referenziert werden und nicht serialisiert werden können und die Ausnahme 'java.io.NotSerializableException' auslösen. Beachten Sie, dass diese nicht serialisierbaren Referenzen zuvor als 'vorübergehend' markiert werden sollten Serialisierung der Hauptklasse.

Wie verwende ich Transient mit dem Schlüsselwort Final?

Transient in Java kann mit dem verwendet werden letztes Schlüsselwort weil es sich in verschiedenen Situationen unterschiedlich verhält, was bei anderen im Allgemeinen nicht der Fall ist Schlüsselwörter in Java .

Schauen Sie sich dieses Beispiel an.

private String firstName private String lastName // letztes Feld 1 public final transient String pass = 'password' // letztes Feld 2 public final transient Lock lock = Lock.getLock ('demo')

Wenn Sie nun die Serialisierung (Schreiben / Lesen) erneut ausführen, erhalten Sie folgende Ausgabe:

Kenny
Stark
Passwort
Null

Dies liegt daran, dass wir den 'Pass' für 'Transient' markiert haben und dieses Feld dennoch serialisiert wurde. Für eine ähnliche Deklaration wurde die Sperre nicht serialisiert. Der Grund ist, wann immer ein letztes Feld als konstanter Ausdruck ausgewertet wird,Es wird von der JVM serialisiert, wobei das Vorhandensein eines vorübergehenden Schlüsselworts ignoriert wird.

Unterschied zwischen vorübergehend und flüchtig

Dies ist eine wichtige Frage, die während eines . Was ist der Unterschied zwischen transienten und flüchtigen Schlüsselwörtern in Java?

Beispiel für einen Remote-Methodenaufruf in Java

Flüchtig und Transient sind zwei völlig unterschiedliche Schlüsselwörter, die in verwendet werden . Während der Serialisierung des Java-Objekts wird ein Schlüsselwort Transient verwendet. Volatile bezieht sich auf die Sichtbarkeit von Variablen, die von mehreren Threads geändert wurden.

Die einzige Ähnlichkeit zwischen diesen Schlüsselwörtern besteht darin, dass sie weniger häufig oder ungewöhnlich verwendet werden und nicht so beliebt sind wie öffentlich, statisch oder endgültig.

Dies bringt uns zum Ende dieses Artikels, in dem wir etwas über Transient in Java gelernt haben. Ich hoffe, Sie sind mit allem klar, was Ihnen in diesem Tutorial mitgeteilt wurde.

Wenn Sie diesen Artikel zu 'Transient in Java' relevant fanden, lesen Sie die Ein vertrauenswürdiges Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt.

Wir sind hier, um Ihnen bei jedem Schritt auf Ihrer Reise zu helfen. Neben diesen Fragen zu Java-Interviews haben wir einen Lehrplan entwickelt, der für Studenten und Fachleute gedacht ist, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Wenn Sie auf Fragen stoßen, können Sie alle Ihre Fragen im Kommentarbereich von „Transient in Java“ stellen. Unser Team beantwortet diese gerne.