Zajimave je, ze treba v c#

String s = new String( "Daka hodnota stringu" );

vubec nejde napsat. Takovy "copy" constructor tam String nema.

Nicmene pri pohledu do zdrojaku Stringu v Jave je videt, ze se timhle konstruktorem paradoxne da uvolnit pamet (v pripade ze puvodni String mel interni char pole vetsi nez byla delka Stringu). Ale kdo tohle v praxi pouziva ze?

Petr

On 08.02.2011 23:08, Oto Buchta wrote:
2011/2/8 Rastislav Rehak<re...@eea.sk>:
No ja som kontroloval kod po jednom Madarovi ( a teraz to nemala byt urazka
narodnosti ) a ten sa zjavne ucil javu z dakej prudko teoretickej knizky OO
programovania, pretoze vsade tvrdosijne pouzival konstrukciu :

String s = new String( "Daka hodnota stringu" );

Pokud se nemýlím, tak platí:

String a = "Daka hodnota stringu";
String b = "Daka hodnota stringu";
String s = new String( a );
String t = new String( b );
if (a == b&&  s != t) System.out.println("Mel jsi pravdu");

Takže je to kapku něco jiného.
Navíc řekl bych, že to je pozůstatek z nějakého jazyka, který měl
proměnné a a b typu char*

Odpovedet emailem