Quelle est la différence entre Mutable et Immutable en Java?



Cet article sur Mutable et Immutable en Java est un guide complet des différences entre eux et explique également pourquoi les chaînes java sont immuables.

Java étant l'un des plus populaires fournit divers concepts pour la création d'applications, et l'un de ces concepts est Mutable et immuable en Java. Eh bien, ce concept repose sur la modification des champs après la création de l'objet et facilite ainsi la programmation pour . Donc, dans cet article sur mutable et immuable en Java, je vais aborder les sujets suivants:

Qu'est-ce que l'objet Mutable?





Les objets dans lesquels vous pouvez modifier les champs et les états après la création de l'objet sont appelés objets mutables. Exemple : java.util.Date, StringBuilder, etc.

Qu'est-ce qu'un objet immuable?



La objets dans lesquels vous ne pouvez rien changer une fois que l'objet est créé sont appelés objets immuables. Exemple : Objets primitifs en boîte comme Integer, Long, etc.

Alors, maintenant que vous savez ce qui est mutable et immuable en java, avançons et voyons les différences entre les deux.

appel c ++ par référence

Différence entre les objets mutables et immuables



Vous pouvez vous référer au tableau suivant pour les différences entre les objets mutables et immuables en Java.

Mutable Immuable
Les champs peuvent être modifiés après la création de l'objetLes champs ne peuvent pas être modifiés après la création de l'objet
Fournit généralement une méthode pour modifier la valeur du champN'a aucune méthode pour modifier la valeur du champ
Possède des méthodes Getter et SetterN'a que la méthode Getter
Exemple: StringBuilder, java.util.DateExemple: String, objets primitifs en boîte comme Integer, Long et etc.

Maintenant que vous connaissez les différences entre les objets mutables et immuables, voyons comment les créer Des classes.

Comment créer une classe Mutable?

Pour créer une classe mutable en Java, vous devez vous assurer que les conditions suivantes sont remplies:

  1. Fournir une méthode pour modifier les valeurs des champs
  2. Méthode Getter et Setter

Considérez le code suivant:

package edureka exemple de classe publique {private String coursename example (String coursename) {this.coursename = coursename} public String getName () {return coursename} public void setName (String coursename) {this.coursename = coursename} public static void main (String [] args) {example obj = new example ('Machine Learning') System.out.println (obj.getName ()) // mettre à jour le nom, cet objet est mutable obj.setName ('Machine Learning Masters') System. out.println (obj.getName ())}}

Vous verriez la sortie suivante:

Sortie d

Alors maintenant que vous savez comment créer une classe mutable, dans cet article, voyons comment créer une classe immuable.

Comment créer une classe immuable?

Pour créer une classe immuable en Java, vous devez vous assurer que les conditions suivantes sont remplies:

  1. Une classe doit être déclarée comme final afin qu'il ne puisse pas être prolongé.
  2. Tous les champs doivent être rendus privés afin que l'accès direct ne soit pas autorisé
  3. Aucune méthode de setter
  4. Rendez tous les champs mutables définitifs, de sorte qu'ils ne puissent être attribués qu'une seule fois.
package edureka classe publique exampleimmutable {private final String coursename exampleimmutable (final String coursename) {this.coursename = coursename} public final String getName () {return coursename} public static void main (String [] args) {example obj = new example ( 'Machine Learning') System.out.println (obj.getName ())}}

Vous verriez la sortie ci-dessous:

Très bien, maintenant que vous connaissez les objets mutables et immuables, laissez-moi vous dire que les chaînes sont immuables en Java. Maintenant, je suis sûr que cela pourrait avoir soulevé une question, sur pourquoi les chaînes sont-elles immuables en Java. Alors, dans cet article, regardons la même chose.

Pourquoi les chaînes sont-elles immuables en Java?

Java utilise les concepts de . Donc, si vous considérez un exemple où vous avez de nombreuses variables de référence faisant référence à un seul objet, alors même si une variable de référence change la valeur du objet , automatiquement toutes les autres variables de référence seront affectées. Aussi, selon Java efficace ,chapitre 4, page 73, 2e édition, voici les raisons d'utiliser les classes immuables:

  • Les objets immuables sont simples
  • Ces objets ne nécessitent aucune synchronisation et sont intrinsèquement thread-safe
  • Les objets immuables constituent de bons blocs de construction pour d'autres objets

Si je dois vous expliquer avec un exemple, alors,

Disons que vous avez une variable échantillonnage , qui stocke la chaîne ' Apprentissage automatique «. Maintenant, si vous concaténez cette chaîne avec une autre chaîne ' Maîtrise ', puis l'objet créé pour ' Apprentissage automatique ' ne changera pas. Au lieu de cela, un nouvel objet sera créé pour ' Masters d'apprentissage automatique «. Reportez-vous à l'image ci-dessous:

Comme vous pouvez le voir dans l'image ci-dessus, le échantillonnage La variable de référence fait référence à «Machine Learning», mais pas à l'autre chaîne, même après la création de deux objets. Avec cela, nous arrivons à la fin de cet article sur Mutable et Immuable en Java. J'espère que vous êtes clair sur chacun des aspects dont j'ai discuté ci-dessus.

print_r en php

Maintenant que vous avez compris les bases de Java, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation et de certification Java J2EE et SOA d'Edureka est 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.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog «Mutable et immuable en Java» et nous vous répondrons dans les plus brefs délais.