? Les développeurs de Java destinées de la classe "String" comme un objet immuable. «Immuable» signifie que la valeur de la classe ne peut pas changer une fois que le programmeur instancie l'objet . Alors qu'il semblerait bénéfique de toujours utiliser un objet String qui a une valeur variable, quelques raisons expliquent pourquoi ce n'est pas le cas . Chaînes immuables se prêtent à une utilisation dans des programmes multi-thread , d'accroître la sécurité du programme, minimiser l'utilisation de la mémoire, et mieux travailler en tant que valeurs dans des structures de données telles que Hashtables . Strings en programmes multi-threads
programmes
sont appelés multi-thread quand ils se reproduisent ce qu'on appelle les "fils" qui exécuter du code en même temps. Quand un programme engendre plusieurs threads, ces fils travaillent souvent sur les mêmes variables à différents moments. Le danger , c'est quand deux threads partagent une variable, et on change de fil de sa valeur tandis que le second utilise encore . Un mécanisme de "verrouillage" garde généralement des variables dans les situations de filetage. Avec une chaîne immuable, cependant , un fil n'est pas concernée par la valeur de la variable.
Sécurité
l'immuabilité des chaînes contribue également à certaines préoccupations de sécurité. Lorsqu'un utilisateur entre des informations de connexion sur un site Web , c'est théoriquement possible pour lui de changer la valeur de la chaîne de nom d'utilisateur ou mot de passe avant qu'il ne passe au système. Si cela se produit , alors que l'utilisateur peut injecter du code malveillant sur le système , il ou elle se connecte à. Depuis les chaînes sont immuables , cependant , ce n'est pas possible.
Minimiser la mémoire utilisation
Quand un programmeur crée un objet string , cet objet réside dans un fixe Point à la mémoire , et le nom de la variable sert de " référence ". Parce que la référence à la mémoire et ce que la mémoire contient sont deux choses distinctes , ce qui signifie que d'autres noms de variables peuvent également référencer le même emplacement mémoire. Ainsi, lorsque des copies d'une chaîne sont nécessaires, différentes variables peuvent référencer la même chaîne immuable, et depuis il ne changera pas , n'ont pas besoin de créer des copies de la même chaîne .
Utilisation dans HashTable structures de données Photos, illustrations
hashtables sont appelés «dictionnaires» parce qu'ils utilisent des paires clé - valeur pour rendre la recherche de la structure de données plus facile. Strings référencent généralement une valeur (par exemple, "name" => " Robert " ou " âge " => 25). Depuis les chaînes sont immuables , un programmeur n'a pas à se soucier de la clé d'une valeur changeante , et perdre l'accès à cette valeur.