nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: Suche Beispiel für das Nichtfunktionieren von String==String

Von: Patrick Roemer (sangamon@netcologne.de) [Profil]
Datum: 09.08.2008 23:51
Message-ID: <g7l3gj$jfr$1@newsreader2.netcologne.de>
Newsgroup: de.comp.lang.java
Responding to Thomas:

> Ich weiß, dass mit == die Objektgleichheit geprüft wird. Um
Strings zu
> vergleichen sollte man s1.equals(s2) benutzen. Erzeuge ich die Strings mit
> new kann man das auch wunderbar sehen.

Und im Prinzip auch ueberall dort, wo Strings zur Laufzeit aus
quellcode-externen Quellen kommen.

> Ich hätte aber gerne ein Beispiel
> bei dem die Strings jeweils mittels **s1="hallo";** erzeugt werden.
>
> Es gelingt mir aber gerade nicht Code zu erzeugen, wo man das sieht. Jetzt
> habe ich gelesen, dass innerhalb einer Klasse ein String wie "hallo" von
> allen Variablen gemeinsam benutzt wird. Also habe ich den String "hallo"
in
> zwei verschiedene Objekte in verschiedene Packages gepackt. Aber auch da
> kam wieder True raus.

Woher die Einschraenkung auf "innerhalb einer Klasse"?

| String literals and, more generally, strings that are the values of
| constant expressions are "interned" so as to share unique instances,
| using the method String.intern.
[VMSpec 2nd ed., §2.3]

...und noch mal genauer in §5.1, wiederum ohne Einschraenkung auf die
Klasse.

Viele Gruesse,
Patrick

[ Auf dieses Posting antworten ]

Antworten