Dobre, rekneme, ze budu od uzivatele
nacitat nejake retezce z konzole a budu je ukladat
do nejakeho Listu, ale do Listu budu pridavat
internovane retezce, tak usetrim pamet a muzu pouzivat
porovnavani pomoci ==, je to tak?
----- Original Message -----
From: "ales" <[EMAIL PROTECTED]>
To: "Java" <konference@java.cz>
Sent: Thursday, September 28, 2006 12:15 PM
Subject: Re: java.lang.String.intern()
Ahoj,
je to presne tak. Nasledujuci kod:
String helloWorld = "HelloWorld";
String hello = "Hello";
String world = "World";
System.out.println(helloWorld == (hello + world).intern());
vypise true. Metoda intern existuje z optimalizacnych dovodov (vid
http://en.wikipedia.org/wiki/String_intern_pool).
Ales
Ing. Jan Novotný wrote / napísal(a):
Nejsem si jistý, ale nezajistí se touto metodou, že konkrétní string bude
na haldě pouze jednou? Tzn. že je teoreticky možné toto:
String a = "ahoj";
String b = "ahoj";
if (a != b) System.out.println("a different from b"); //mohlo by se
vypsat
a.intern();
b.intern();
if (a == b) System.out.println("a same as b"); //musí se vypsat
Nejsem si tím jistý, ale myslím, že takhle to funguje ... equals
samozřejmě vrátí v obou případech true (imlementace equals u stringu
myslím interně to intern právě volá).
Honza
Kamzik-II napsal(a):
Zdravim diskuzi, mam opet jeden zacatecnicky dotaz :)
Tentokrat by me zajimalo, jake vyuziti ma metoda intern ()
tridy java.lang.String, zaujalo me tohle:
String helloWorld = "HelloWorld";
String hello = "Hello";
String world = "World";
helloWorld == ( hello + world ).intern ();
mohl by mi nekdo vysvetlit k cemu je tato
metoda dobra? :)