Transientes Schlüsselwort in Java: Was ist das und wie funktioniert es?
Veröffentlicht: 2022-03-06Wie alle anderen Programmiersprachen hat die Programmiersprache Java eine Liste reservierter Wörter, die eine bestimmte Bedeutung haben. Dieser Satz von 52 von Java reservierten Wörtern wird als Schlüsselwörter bezeichnet. Da sie eine vordefinierte Bedeutung haben, können Programmierer keine Schlüsselwörter verwenden, um ihre Klassen, Objekte, Variablen und andere Bezeichner zu benennen. Eines dieser 52 Schlüsselwörter ist das vorübergehende Schlüsselwort – das im Mittelpunkt unseres Blogs stehen wird!
Inhaltsverzeichnis
Das transiente Schlüsselwort in Java verstehen
Transient ist einer der nützlicheren Modifikatoren in der Programmiersprache Java. Die primäre Rolle des Schlüsselworts transient spielt die Serialisierung. Der vorübergehende Modifikator kann auf Feldmitglieder einer Klasse angewendet werden, um die Serialisierung für diese spezifischen Mitglieder zu deaktivieren.
Einfach ausgedrückt, das Schlüsselwort transient in Java kann vom Programmierer verwendet werden, um eine Serialisierung zu vermeiden. Wenn ein bestimmtes Objekt einer beliebigen Datenstruktur vom Programmierer als transient definiert wurde, wird es nicht serialisiert. Infolgedessen können Sie das Schlüsselwort transient verwenden, um der JVM (Java Virtual Machine) anzuzeigen, dass Ihre transiente Variable nicht Teil eines dauerhaften Zustands des Objekts sein wird.
Versuchen wir, die Funktionsweise des Schlüsselworts transient in Java anhand eines sehr einfachen Beispiels zu verstehen. Zuerst erstellen wir eine Address-Klasse und definieren drei Attribute für die Klasse – streetName, areaName und houseNumber. Wir werden es transient halten, da wir das dritte Attribut – houseNumber – nicht speichern oder sichern wollen.
Klasse Address implementiert Serializable { private Zeichenfolge Straßenname; private Zeichenfolge areaName; private transiente Zeichenfolge houseNumber;
//Setter und Getter } |
Lassen Sie uns nun eine Instanz der Address-Klasse serialisieren.
versuche { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("addressinfo.ser")); Adresse a = neue Adresse(); a.setstreetName("MIG"); a.setareaName("Vikas Nagar"); emp.sethouseNumber("110"); // Das Objekt serialisieren oos.writeObject(a); oos.close(); } catch (Ausnahme e) { System.out.println(e); } |
Wenn unser Code korrekt funktioniert, wurden die 'houseNumber'-Informationen nicht gespeichert, da wir sie als vorübergehend definiert haben. Jetzt versuchen wir, es wieder in das ursprüngliche Objekt zu deserialisieren und zu sehen, ob die Informationen gespeichert wurden oder nicht.
versuche { ObjectInputStream o = new ObjectInputStream(new FileInputStream("addressinfo.ser")); //Lesen Sie das Objekt zurück Adresse readAddressInfo = (Adresse) o.readObject(); System.out.println (readAddressInfo.getstreetName()); System.out.println(readAddressInfo.getareaName()); System.out.println (readAddressInfo.gethouseNumber()); o.schließen(); } catch (Ausnahme e) { System.out.println(e); } |
Wenn Sie das obige Java-Programm ausführen, erhalten Sie die folgende Ausgabe:
MIG
Vikas Nagar
Null
Wie Sie sehen können, wurden die „houseNumber“-Informationen aufgrund der Serialisierung nicht dauerhaft gespeichert, weshalb wir als Ausgabe den Wert „null“ erhalten. Genau aus diesem Grund wird das Schlüsselwort transient verwendet – um Werte nicht dauerhaft, sondern vorübergehend in Variablen zu speichern.
Anwendungsfälle für das Schlüsselwort „transient“ in Java
Nachdem Sie nun das Schlüsselwort transient verstanden haben und wissen, was es bewirkt, stellt sich die nächste logische Frage: Wann verwenden wir das Schlüsselwort transient?
Lassen Sie uns unsere Erkenntnisse über das vorübergehende Schlüsselwort erweitern, indem wir uns einige der Situationen genauer ansehen, in denen Sie von der Verwendung der vorübergehenden Schlüsselwörter profitieren würden.
Hier sind einige häufig anzutreffende Anwendungsfälle, die Sie im Hinterkopf behalten sollten:
- Der erste Anwendungsfall des vorübergehenden Schlüsselworts ist in Situationen, in denen Sie möglicherweise Datenfelder haben, die entweder berechnet oder von einigen anderen Feldern innerhalb der Klasseninstanz abgeleitet werden. Daher müssen diese Felder programmgesteuert berechnet werden und hängen von anderen Werten ab. Aus diesem Grund könnten solche Felder, anstatt sie dauerhaft zu haben, mit dem Schlüsselwort transient nicht serialisiert werden. Beispiele für solche transienten Werte, die aus anderen Zahlen berechnet werden, könnten zeitstempelbasierte Werte, prozentbasierte Werte usw. umfassen. In all diesen Fällen berechnen Sie den Wert einer Variablen basierend auf aktuell vorhandenen Werten.
- Ein weiterer wichtiger Anwendungsfall könnte sein, wenn Sie mit jeder Art von sicheren Informationen arbeiten, die auf keinen Fall außerhalb der JVM durchsickern sollten, dann können diese mit dem Schlüsselwort transient nicht serialisiert werden.
- Felder, die im Java Development Kit nicht als „serialisierbar“ gekennzeichnet sind, können mit einem transienten Schlüsselwort verwendet werden. Eine wichtige Sache, die hier zu beachten ist, ist, dass alle Java-Klassen, die die serialisierbare Schnittstelle nicht implementieren, nicht serialisiert werden können, da sie nicht innerhalb einer serialisierbaren Klasse referenziert werden. Infolgedessen können diese „java.io.NotSerializableException“ auslösen, wenn sie nicht als „vorübergehend“ gekennzeichnet sind, bevor die Hauptklasse serialisiert wird.
- Und schließlich gibt es Fälle, in denen es keinen Sinn macht, einige Felder zu serialisieren. Wenn Sie Ihrem Code beispielsweise eine Protokollierungsreferenz hinzugefügt haben, möchten Sie diese Informationen nicht serialisieren. Sie sollten Informationen serialisieren, die den Status einer Instanz darstellen. Logger hingegen stellen keinen Zustand dar, daher macht es keinen Sinn, sie zu serialisieren. Daher sollten sie mit dem Schlüsselwort transient verwendet werden.
Abschließend
Die oben diskutierten Anwendungsfälle sind keineswegs erschöpfend. Experimentieren Sie mit dem Schlüsselwort transient und entwickeln Sie Ihre eigenen Anwendungsfälle. Schließlich sind Schlüsselwörter für Programmierer gemacht, und Sie können die meisten Schlüsselwörter nur dann erstellen, wenn Sie wissen, wie sie funktionieren und was sie bedeuten.
Damit kommen wir zum Ende dieses Blogs zu transienten Schlüsselwörtern in Java. Dies ist eines der einführenderen Konzepte, die Sie beherrschen müssen, um in Ihrer Karriere als Softwareentwickler zu wachsen. Der Bereich der Softwareentwicklung ist äußerst dynamisch und dennoch sehr einladend, wenn Sie bereit sind, Ihre Socken auszuziehen und Ihr Bestes zu geben!
Bei upGrad haben wir Studenten aus der ganzen Welt aus verschiedenen Bereichen betreut und angeleitet und ihnen geholfen, ihre Karriere in der Softwareentwicklung zu starten. Unser PGP in Software Development – Specialization in Full Stack Development richtet sich an Studienanfänger und erfahrene Professionals. Neben fachkundigen Tutoren und modernstem Lernmaterial erhalten Sie auch talentierte Kollegen, umfassende Unterstützung bei der Platzierung und persönliche Betreuung durch Branchenführer. Schauen Sie sich also die Kursinhalte an und melden Sie sich bald an!
1. Was ist das Schlüsselwort transient in Java?
Transiente Schlüsselwörter in Java können verwendet werden, um die Serialisierung eines Objekts zu vermeiden. Mit vorübergehenden Schlüsselwörtern stellen Sie sicher, dass der Wert des jeweiligen Felds nicht dauerhaft ist.
2. Das Schlüsselwort transient kann mit welchen Elementen in Java verwendet werden?
Sie können das Schlüsselwort transient in Java verwenden, um eine Klasse, eine Variable, ein Objekt oder ein Feld nicht zu serialisieren.
3. Wie unterscheiden sich das Schlüsselwort transient und das Schlüsselwort volatile in Java?
Das transient-Schlüsselwort wird verwendet, um den Serialisierungsprozess zu vermeiden, während ein volatile-Schlüsselwort mit einer Variablen verwendet wird, damit sie nicht im Hauptspeicher gespeichert wird.