Maison > Java > Javacommencer > le corps du texte

La différence entre deux types d'instanciation d'objet dans la classe String de Java

王林
Libérer: 2019-11-25 17:13:34
avant
2299 Les gens l'ont consulté

La différence entre deux types d'instanciation d'objet dans la classe String de Java

Différence :

Affectation directe : seul un espace mémoire tas sera ouvert et l'objet chaîne peut être automatiquement enregistré dans le pool d'objets .pour une prochaine utilisation.

Méthode de construction : deux espaces mémoire tas seront ouverts, dont l'un deviendra un espace poubelle et ne sera pas automatiquement enregistré dans le pool d'objets. Vous pouvez utiliser la méthode intern() pour entrer manuellement dans le pool.

Tutoriels vidéo Java recommandés : Tutoriels vidéo Java

Affectation directe :

La différence entre deux types dinstanciation dobjet dans la classe String de Java

Mécanisme d'optimisation constante :

La conception de la classe String utilise le modèle de conception partagé.

Au bas de la JVM, un pool d'objets (pool d'objets string) sera effectivement automatiquement maintenu. Si le mode d'affectation directe est désormais utilisé pour instancier l'objet de la classe String, alors l'objet instancié (string content ) sera automatiquement enregistré dans ce pool d’objets.

Si vous continuez à utiliser le mode d'affectation directe pour déclarer les objets de la classe String la prochaine fois, s'il y a du contenu spécifié dans le pool d'objets, il sera directement référencé

Sinon, un nouveau ; La chaîne sera ouverte L'objet est ensuite stocké dans le pool d'objets pour la prochaine utilisation. Ce qu'on appelle le pool d'objets est un tableau d'objets (le but est de réduire la surcharge)

Affectation de la méthode constructeur :

Il est de pratique courante que les objets de classe soient instanciés à l'aide de constructeurs.

String str = new String("hello");
Copier après la connexion

Grâce à l'analyse, on peut voir que si la méthode de construction String est utilisée, deux espaces de mémoire de tas seront ouverts et l'un des tas de mémoire deviendra un espace poubelle. En plus de cette lacune, il existe également des problèmes de partage de chaînes.

Par conséquent, l'affectation directe est généralement adoptée.

Articles et tutoriels connexes recommandés : Démarrer avec Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal