Parola chiave transitoria in Java: cos'è e come funziona?
Pubblicato: 2022-03-06Come tutti gli altri linguaggi di programmazione, Java Programming Language ha un elenco di parole riservate che hanno un significato specifico. Questo insieme di 52 parole riservate da Java sono conosciute come parole chiave. Poiché hanno un significato predefinito, i programmatori non possono utilizzare parole chiave per nominare classi, oggetti, variabili e altri identificatori. Una di queste 52 parole chiave è la parola chiave transitoria, che sarà al centro del nostro blog!
Sommario
Comprendere la parola chiave transitoria in Java
Transient è uno dei modificatori più utili presenti nel linguaggio di programmazione Java. Il ruolo principale della parola chiave transitoria si ha nei casi di serializzazione. Il modificatore transitorio può essere applicato ai membri del campo di una classe per disattivare la serializzazione su questi membri specifici.
In poche parole, la parola chiave transitoria in Java può essere utilizzata dal programmatore per evitare la serializzazione. Se un particolare oggetto di qualsiasi struttura dati è stato definito come transitorio dal programmatore, non verrà serializzato. Di conseguenza, è possibile utilizzare la parola chiave transitoria per indicare alla JVM (Java Virtual Machine) che la variabile transitoria non farà parte di nessuno stato persistente dell'oggetto.
Proviamo a capire il funzionamento della parola chiave transitoria in Java usando un esempio molto semplice. Per prima cosa creeremo una classe Address e definiremo tre attributi per la classe: streetName, areaName e houseNumber. Lo manterremo transitorio poiché non vogliamo memorizzare o salvare il terzo attributo: houseNumber.
La classe Indirizzo implementa Serializable { private String streetName; private String areaName; privato transitorio String houseNumber;
//Setter e getter } |
Ora serializziamo un'istanza della classe Address.
prova { ObjectOutputStream oos = nuovo ObjectOutputStream(nuovo FileOutputStream("addressinfo.ser")); Indirizzo a = nuovo indirizzo(); a.setstreetName("MIG"); a.setareaName(“Vikas Nagar”); emp.sethouseNumber(“110”); //Serializza l'oggetto oos.writeObject(a); oos.close(); } cattura (Eccezione e) { System.out.println(e); } |
Se il nostro codice funziona correttamente, l'informazione 'houseNumber' non sarebbe stata salvata poiché l'abbiamo definita transitoria. Ora proveremo a deserializzarlo nuovamente nell'oggetto originale e vedere se le informazioni sono state salvate o meno.
prova { ObjectInputStream o = new ObjectInputStream(new FileInputStream(“addressinfo.ser”)); //Rileggi l'oggetto Indirizzo readAddressInfo = (Indirizzo) o.readObject(); System.out.println(readAddressInfo.getstreetName()); System.out.println(readAddressInfo.getareaName()); System.out.println(readAddressInfo.gethouseNumber()); o.chiudi(); } cattura (Eccezione e) { System.out.println(e); } |
Se esegui la parte precedente del programma Java, riceverai il seguente output:
MIG
Vika Nagar
nullo
Come puoi vedere, le informazioni 'houseNumber' non sono state salvate in uno stato permanente a causa della serializzazione, ed è per questo che riceviamo il valore 'null' come output. Questo è esattamente il motivo per cui viene utilizzata la parola chiave transitoria: per memorizzare i valori nelle variabili in un modo che non è permanente ma transitorio.
Casi d'uso per la parola chiave 'transitoria' in Java
Ora che hai compreso la parola chiave transitoria e cosa fa, la prossima domanda logica che sorge è: quando usiamo la parola chiave transitoria?
Espandi le nostre conoscenze sulla parola chiave transitoria esaminando in profondità alcune delle situazioni in cui potresti trarre vantaggio dall'utilizzo delle parole chiave transitorie.
Ecco alcuni casi d'uso comuni da tenere a mente:
- Il primo caso d'uso della parola chiave transitoria è durante le situazioni in cui potresti avere campi di dati calcolati o derivati da altri campi all'interno dell'istanza della classe. Di conseguenza, questi campi devono essere calcolati a livello di codice e dipendono da altri valori. Ecco perché, invece di avere tali campi persistenti, potrebbero essere non serializzati utilizzando la parola chiave transitoria. Esempi di tali valori transitori calcolati da altre cifre potrebbero includere valori basati su timestamp, valori basati su percentuali, ecc. In tutti questi casi, stai calcolando il valore di una variabile in base ai valori attualmente esistenti.
- Un altro caso d'uso importante potrebbe essere quando si lavora con qualsiasi tipo di informazione sicura che non dovrebbe, in ogni caso, essere trapelata al di fuori della JVM, quindi non serializzata utilizzando la parola chiave transitoria.
- I campi che non sono contrassegnati come "serializzabili" all'interno del Java Development Kit possono essere utilizzati con una parola chiave transitoria. Una cosa importante da notare qui è che tutte le classi Java che non implementano l'interfaccia serializzabile non possono essere serializzate poiché non sono referenziate all'interno di nessuna classe serializzabile. Di conseguenza, questi potrebbero generare "java.io.NotSerializableException" se non contrassegnati come "transitori" prima di serializzare la classe principale.
- E infine, ci sono alcune occasioni in cui non ha senso serializzare alcuni campi. Ad esempio, se hai aggiunto un riferimento al logger nel tuo codice, non vorrai serializzare tali informazioni. È necessario serializzare le informazioni che rappresentano lo stato di un'istanza. I logger, d'altra parte, non rappresentano alcuno stato, quindi non serve serializzarli. Pertanto, dovrebbero essere utilizzati con la parola chiave transitoria.
In conclusione
I casi d'uso discussi sopra non sono affatto esaustivi. Sperimenta con la parola chiave transitoria e trova i tuoi casi d'uso. Dopotutto, le parole chiave sono fatte per i programmatori e sarai in grado di creare la maggior parte delle parole chiave solo quando saprai come funzionano e cosa significano.
Con questo, arriviamo alla fine di questo blog sulle parole chiave transitorie in Java. Questo è uno dei concetti più introduttivi che devi cercare di padroneggiare per crescere nella tua carriera di sviluppo software. Il campo dello sviluppo software è estremamente dinamico ma molto accogliente se sei pronto a tirarti fuori i calzini e fare del tuo meglio!
In upGrad, abbiamo guidato e guidato studenti di tutto il mondo, appartenenti a domini diversi e li abbiamo aiutati a dare il via alla loro carriera nello sviluppo di software. Il nostro PGP in Software Development - Specializzazione in Full Stack Development è progettato per i neofiti e per i professionisti esperti. Oltre a tutor esperti e materiale di apprendimento all'avanguardia, ottieni anche colleghi di talento, supporto completo per il posizionamento e tutoraggio individuale con i leader del settore. Quindi controlla il contenuto del corso e iscriviti presto!
1. Qual è la parola chiave transitoria in Java?
Le parole chiave transitorie in Java possono essere utilizzate per evitare la serializzazione di un oggetto. Utilizzando parole chiave transitorie, ti assicuri che il valore contenuto nel campo particolare non sia persistente.
2. La parola chiave transitoria può essere utilizzata con quali elementi in Java?
È possibile utilizzare la parola chiave transitoria in Java per non serializzare una classe, una variabile, un oggetto o un campo.
3. In che modo la parola chiave transitoria e la parola chiave volatile differiscono in Java?
La parola chiave transitoria viene utilizzata per evitare il processo di serializzazione, mentre una parola chiave volatile viene utilizzata con una variabile in modo che non venga archiviata nella memoria principale.