mémoire JVM de == et égaux


        Dans la machine virtuelle, la mémoire est divisée en segment de mémoire à la mémoire de pile. La différence entre les deux est: Lorsque nous créons un objet (nouvel objet), appellera le constructeur de l'objet pour ouvrir l'espace aux données d'objets de stockage dans la mémoire de tas, en même temps génère les références correspondantes dans la mémoire de la pile, quand nous appelons dans le dans le code ultérieur référencé sont utilisés dans la mémoire de la pile. Notez également que les types de données de base sont stockées dans la mémoire de la pile.

== compréhension préliminaire des différences est égale à :
 == deux variables est déterminé ou exemples ne sont pas dirigées vers le même espace mémoire, est égale à la valeur de deux variables sont déterminées ou des exemples de points à l'espace de mémoire ne sont pas les mêmes 
== moyens de mémoire adresse comparer, equals () est de comparer le contenu de la chaîne
== désigne les références sont les mêmes, est égal à () fait référence à la valeur est la même que l'
 utilisation d' une carte peut être brièvement la performance de leur relation:

 


Un test de code:


est égale à la différence entre == détaillée:

        == variables de comparaison (pile) stockées dans l'adresse de mémoire des objets de mémoire (pile), l'adresse utilisée pour déterminer si deux objets sont les mêmes, à savoir, si le même fait référence à un objet. Comparer une opération de pointeur dans le vrai sens. Égale est utilisé pour comparer le contenu de deux objets sont égaux, parce que toutes les classes sont héritées de la classe java.lang.Object, il applique à tous les objets, si ne sont pas couverts par cette méthode, il est encore appelé objet classe de méthode, la méthode equals d'objet est renvoyé == jugement. Chaîne s = « ABCD » est une forme très particulière d' une nouvelle et fondamentalement différente. Il est le seul moyen java ne nécessite pas nouvel objet peut être généré. Le montant de la forme d'assignation appelée directement en Java, il est en constante piscine plutôt que comme nouvelle que sur le tas de compression, à chaîne s = « ABCD ». Cette forme de chaîne, la chaîne se produit dans la détention JVM, qui est, lorsqu'une chaîne d'une telle déclaration, JVM regardera d' abord à la piscine constante , il est là une valeur « ABCD » de l'objet, le cas échéant, sera assigner à la référence actuelle qui est original et que les références de cette citation maintenant pointant vers le même objet, sinon, créez un nouveau « ABCD » dans la piscine constante, la prochaine fois s'il y a chaîne s1 = « ABCD » ;. et sera le point s1 « ABCD » objet, à savoir une chaîne de déclarations qui forme, tant que les valeurs sont égales, pas références pointent vers le même objet.
   et string = new string ( « ABCD ») ;. et tout autre objet pour chaque appel une fois produire un objet, aussi longtemps qu'ils sont appelés.
Il peut également être compris: String str = « bonjour », trouver dans la mémoire n'est pas un « bonjour » cet objet, et si oui, laissez le point str que « bonjour ».

Si la mémoire n'est pas « bonjour », pour créer un nouvel objet pour contenir « bonjour ». String str = new String ( « bonjour ») est, si la mémoire est déjà là « bonjour » cet objet est de créer un nouvel objet pour contenir « bonjour ".

 

Je suppose que tu aimes

Origine www.cnblogs.com/leigepython/p/12550797.html
conseillé
Classement