Mot clé transitoire en Java : qu'est-ce que c'est et comment ça marche ?

Publié: 2022-03-06

Comme tous les autres langages de programmation, Java Programming Language possède une liste de mots réservés qui ont une signification spécifique. Cet ensemble de 52 mots réservés par Java est appelé mots-clés. Puisqu'ils ont une signification prédéfinie, les programmeurs ne peuvent pas utiliser de mots-clés pour nommer leurs classes, objets, variables et autres identifiants. L'un de ces 52 mots-clés est le mot-clé transitoire - qui sera au centre de notre blog !

Table des matières

Comprendre le mot-clé transitoire en Java

Transient est l'un des modificateurs les plus utiles présents dans le langage de programmation Java. Le rôle principal du mot-clé transient intervient dans les cas de sérialisation. Le modificateur transitoire peut être appliqué aux membres de champ d'une classe pour désactiver la sérialisation sur ces membres spécifiques.

En termes simples, le mot clé transient en Java peut être utilisé par le programmeur pour éviter la sérialisation. Si un objet particulier d'une structure de données a été défini comme transitoire par le programmeur, il ne sera pas sérialisé. Par conséquent, vous pouvez utiliser le mot-clé transient pour indiquer à la JVM (Java Virtual Machine) que votre variable transitoire ne fera partie d'aucun état persistant de l'objet.

Essayons de comprendre le fonctionnement du mot-clé transient en Java à l'aide d'un exemple très basique. Tout d'abord, nous allons créer une classe Address et définir trois attributs pour la classe : streetName, areaName et houseNumber. Nous le garderons transitoire car nous ne voulons pas stocker ou enregistrer le troisième attribut - houseNumber.

l'adresse de classe implémente sérialisable

{

chaîne privée streetName ;

chaîne privée areaName ;

chaîne privée transitoire houseNumber ;

//Setters et Getters

}

Sérialisons maintenant une instance de la classe Address.

essayer {

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("addressinfo.ser"));

Adresse a = nouvelle adresse();

a.setstreetName("MIG");

a.setareaName("Vikas Nagar");

emp.sethouseNumber("110");

//Sérialiser l'objet

oos.writeObject(a);

oos.close();

} capture (Exception e)

{

System.out.println(e);

}

Si notre code fonctionne correctement, l'information 'houseNumber' n'aurait pas été enregistrée puisque nous l'avons définie comme transitoire. Maintenant, nous allons essayer de le désérialiser dans l'objet d'origine et voir si les informations ont été enregistrées ou non.

essayer {

ObjectInputStream o = new ObjectInputStream(new FileInputStream("addressinfo.ser"));

// Relire l'objet

Adresse readAddressInfo = (Adresse) o.readObject();

System.out.println(readAddressInfo.getstreetName());

System.out.println(readAddressInfo.getareaName());

System.out.println(readAddressInfo.gethouseNumber());

o.close();

} capture (Exception e)

{

System.out.println(e);

}

Si vous exécutez le programme Java ci-dessus, vous recevrez la sortie suivante :

MIG

Vikas Nagar

nul

Comme vous pouvez le voir, les informations 'houseNumber' n'ont pas été enregistrées dans un état permanent en raison de la sérialisation, et c'est pourquoi nous recevons la valeur 'null' en sortie. C'est précisément pourquoi le mot clé transient est utilisé - pour stocker des valeurs dans des variables d'une manière qui n'est pas permanente mais transitoire.

Cas d'utilisation du mot-clé 'transient' en Java

Maintenant que vous comprenez le mot-clé transitoire et ce qu'il fait, la prochaine question logique qui se pose est : quand utilisons-nous le mot-clé transitoire ?

Élargissons nos connaissances sur le mot-clé transitoire en examinant en profondeur certaines des situations dans lesquelles vous bénéficieriez de l'utilisation des mots-clés transitoires.

Voici quelques cas d'utilisation couramment rencontrés à garder à l'esprit :

  • Le premier cas d'utilisation du mot clé transient concerne les situations où vous pouvez avoir des champs de données calculés ou dérivés d'autres champs dans l'instance de la classe. Par conséquent, ces champs doivent être calculés par programmation et dépendent d'autres valeurs. C'est pourquoi, au lieu d'avoir de tels champs persistants, ils pourraient être non sérialisés à l'aide du mot-clé transient. Des exemples de ces valeurs transitoires calculées à partir d'autres chiffres peuvent inclure des valeurs basées sur l'horodatage, des valeurs basées sur des pourcentages, etc. Dans tous ces cas, vous calculez la valeur d'une variable en fonction de valeurs existantes.
  • Un autre cas d'utilisation important pourrait être lorsque vous travaillez avec tout type d'informations sécurisées qui ne doivent en aucun cas être divulguées en dehors de la JVM, puis qui peuvent être non sérialisées à l'aide du mot-clé transient.
  • Les champs qui ne sont pas marqués comme "sérialisables" dans le kit de développement Java peuvent être utilisés avec un mot-clé transient. Une chose importante à noter ici est que toutes les classes Java qui n'implémentent pas l'interface sérialisable ne peuvent pas être sérialisées car elles ne sont référencées dans aucune classe sérialisable. Par conséquent, ceux-ci peuvent lever "java.io.NotSerializableException" s'ils ne sont pas marqués "transient" avant de sérialiser la classe principale.
  • Et enfin, il y a des occasions où il n'est pas logique de sérialiser certains champs. Par exemple, si vous avez ajouté une référence d'enregistreur dans votre code, vous ne voudriez pas sérialiser cette information. Vous devez sérialiser les informations qui représentent l'état d'une instance. Les enregistreurs, en revanche, ne représentent aucun état, il est donc inutile de les sérialiser. Ainsi, ils doivent être utilisés avec le mot-clé transient.

En conclusion

Les cas d'utilisation décrits ci-dessus ne sont en aucun cas exhaustifs. Expérimentez avec le mot-clé transitoire et proposez vos propres cas d'utilisation. Après tout, les mots-clés sont faits pour les programmeurs, et vous ne pourrez utiliser la plupart des mots-clés que lorsque vous saurez comment ils fonctionnent et ce qu'ils signifient.

Avec cela, nous arrivons à la fin de ce blog sur les mots-clés transitoires en Java. C'est l'un des concepts les plus introductifs que vous devez chercher à maîtriser pour progresser dans votre carrière de développeur de logiciels. Le domaine du développement de logiciels est extrêmement dynamique mais très accueillant si vous êtes prêt à tirer vos chaussettes et à faire de votre mieux !

Chez upGrad, nous avons encadré et guidé des étudiants du monde entier, appartenant à différents domaines, et les avons aidés à démarrer leur carrière dans le développement de logiciels. Notre PGP en développement de logiciels - Spécialisation en développement Full Stack est conçu pour les débutants et les professionnels expérimentés. Outre des tuteurs experts et du matériel d'apprentissage de pointe, vous bénéficiez également de pairs talentueux, d'un soutien complet au placement et d'un mentorat individuel avec des leaders de l'industrie. Alors consultez le contenu du cours et inscrivez-vous bientôt!

1. Quel est le mot-clé transitoire en Java ?

Les mots clés transitoires en Java peuvent être utilisés pour éviter la sérialisation d'un objet. En utilisant des mots clés transitoires, vous vous assurez que la valeur détenue par le champ particulier ne sera pas persistante.

2. Le mot clé transient peut être utilisé avec quels éléments en Java ?

Vous pouvez utiliser le mot clé transient en Java pour ne pas sérialiser une classe, une variable, un objet ou un champ.

3. En quoi le mot clé transitoire et le mot clé volatile diffèrent-ils en Java ?

Le mot clé transient est utilisé pour éviter le processus de sérialisation, tandis qu'un mot clé volatile est utilisé avec une variable afin qu'elle ne soit pas stockée dans la mémoire principale.