Durch das Lesen Oracle JVM-Architektur Dokument:JVM-Architektur: Laufzeitkonstante Pool in Bereich Methode ist pro-Klasse
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html
Ein Laufzeitkonstante Pool ist eine pro-Klasse oder pro-Schnittstelle Lauf -time Darstellung der Tabelle constant_pool in einer Klassendatei (§4.4).
Ich verstehe, dass für jede Klasse , hat es eine Laufzeit konstant Pool hat (bitte korrigiert mich wenn ich falsch liege).
Allerdings, was ich verwirrt bin, ist, dass, wenn ich zwei verschiedene Klassen A und B habe und jede Klasse hat eine private String-Variable sagen String value = "abc"
.
wenn ich vergleiche A.value
mit B.value
==
mit eher als equals
, werde ich ein true
bekommen, die ich denke, dass "abc"
sowohl in A und B in dem gleichen Laufzeit konstant Pool sind? Kann mir jemand zeigen, wo ich falsch liege?
können Sie das Dokument verknüpfen? –
@JigarJoshi verbunden –
Wenn beide privat sind, wie greifen Sie beide gleichzeitig auf, um sie zu vergleichen? Erstellt man eine Instanz des anderen? Können Sie Ihren vollständigen Code posten? – Andrew