US

Immuabilité des chaines de caractères

Immuabilité

La classe String est immuable. Pour rappel une classe immuable est une classe dont les objets sont immuables. Un objet est immuable si une fois qu'il est créé, il est impossible de changer son état.

Les objets immuables sont très intéressants pour plusieurs raisons. Tout d'abord, si vous avez un objet qui possède des variables d'instance immuables, vous pouvez les renvoyer via des méthodes publiques sans aucun risque. De plus, si vos construteurs ont comme paramètre des objets immuables, vous ne devez pas en faire une copie. Enfin, les objets immuables peuvent être utilisés dans des environnements multi-thread sans synchronisation.

Donc, il faut bien se rendre compte que lorsque vous utilisez l'opérateur de concaténation avec des objets de type String, ce sont à chaque fois des nouveaux objets qui sont créés. Prenons un exemple :