Transient en Java: quoi, pourquoi et comment ça marche?



Transient in Java est un mot-clé utilisé dans la sérialisation. Il est utilisé lorsque vous ne souhaitez pas enregistrer la valeur d'une variable dans un fichier

Transient en Java est utilisé pour marquer la variable membre à ne pas sérialiser lorsqu'elle est conservée dans des flux d'octets. Ce mot clé joue un rôle important pour répondre aux contraintes de sécurité dans . Il ignore la valeur d'origine d'un variable et enregistre la valeur par défaut de cette variable .

Voici les sujets qui seront abordés dans cet article:





Commençons!

Qu'est-ce que le mot clé Transient en Java?

Transient est essentiellement un modificateur de variables utilisé pour la sérialisation. Maintenant, qu'est-ce que la sérialisation? Sérialisation en Java est un mécanisme utilisé pour convertir l'état d'un objet en un flux d'octets. Au moment de la sérialisation, si vous ne souhaitez pas enregistrer la valeur d'une variable particulière dans un fichier, utilisez le mot-clé transitoire.



Syntaxe :

transitoire privé

ou

transitoire privé

Si vous définissez un membre de données comme transitoire, il ne sera pas sérialisé. En effet, chaque champ marqué comme transitoire ne sera pas sérialisé. Vous pouvez utiliser ce mot clé transitoire pour indiquer à la machine virtuelle Java (JVM) que la variable transitoire ne fait pas partie de l'état persistant d'un objet.



Écrivons un exemple très basique pour comprendre Transient en Java.

programme de recherche binaire en java
class Demo implements Serializable {// Making human transient private transient String human transient int age // sérialiser d'autres champs private String name, address Date dob // reste du code}

Ici, j'ai créé une classe appelée Demo qui implémente Serializable. Le membre de données d'âge de la classe Demo est déclaré comme transitoire, sa valeur ne sera pas sérialisée. Mais si vous désérialisez l'objet, vous obtiendrez la valeur par défaut d'une variable transitoire.

Pourquoi le modificateur Transient est-il utilisé?

Transient in Java est utilisé pour indiquer qu'un champ ne doit pas faire partie du processus de sérialisation.

Le modificateur Transient peut être appliqué aux variables membres d'une classe pour désactiver la sérialisation sur ces variables membres. Chaque champ marqué comme transitoire ne sera pas sérialisé. Vous pouvez utiliser ce mot clé transitoire pour indiquer au Machine virtuelle Java que la variable transitoire ne fait pas partie de l'état persistant d'un objet.

Vous pourriez avoir cette question dans votre tête. Quand utiliser ce Transient en Java?

La réponse à cela serait:

  1. Vous pouvez utiliser ce mot clé Transient lorsque vous avez des champs qui sont dérivés / calculés à partir d'autres champs dans l'instance d'une classe.
  2. Utilisez-le avec des champs qui ne sont pas marqués comme «Serializable» dans le JDK ou le code d'application. En effet, les classes qui n'implémentent pas l'interface Serializable sont référencées dans n'importe quelle classe sérialisable et ne peuvent pas être sérialisées et lèveront l'exception «java.io.NotSerializableException». Notez que ces références non sérialisables doivent être marquées «transitoires» avant sérialiser la classe principale.

Comment utiliser Transient avec le mot clé final?

Transient en Java peut être utilisé avec le mot-clé final car il se comporte différemment dans différentes situations, ce qui n'est généralement pas le cas avec d'autres mots-clés en Java .

Jetez un œil à cet exemple.

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

Maintenant, lorsque vous exécutez à nouveau la sérialisation (écriture / lecture), vous obtiendrez cette sortie:

Kenny
Fort
mot de passe
nul

C'est parce que nous avons marqué le «passage» à transitoire, et toujours ce champ a été sérialisé. Pour une déclaration similaire, le verrou n'a pas été sérialisé. La raison en est que chaque fois qu'un champ final est évalué comme une expression constante,il est sérialisé par la JVM en ignorant la présence du mot clé transitoire.

Différence entre transitoire et volatil

C'est une question importante posée lors d'un . Quelle est la différence entre un mot clé transitoire et volatil en Java?

Volatil et Transient sont deux mots-clés complètement différents utilisés dans . Un mot clé Transient est utilisé lors de la sérialisation de l'objet Java. Volatile est lié à la visibilité des variables modifiées par plusieurs threads.

La seule similitude entre ces mots-clés est qu'ils sont des mots-clés moins utilisés ou peu courants et pas aussi populaires que publics, statiques ou définitifs.

Cela nous amène à la fin de cet article où nous avons découvert Transient en Java. J'espère que vous êtes clair avec tout ce qui a été partagé avec vous dans ce tutoriel.

Si vous avez trouvé cet article sur 'Transient in Java' pertinent, consultez le une entreprise de formation en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier.

Nous sommes là pour vous aider à chaque étape de votre voyage, pour devenir une autre question d'entrevue java, nous proposons un programme conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java. Le cours est conçu pour vous donner une longueur d'avance dans la programmation Java et vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate & Spring.

Si vous rencontrez des questions, n'hésitez pas à poser toutes vos questions dans la section commentaires de «Transient in Java» et notre équipe se fera un plaisir de vous répondre.