Primitivni typy mi k srdci neprirostly, ale String se (temer vzdy, az
na memory problem, ktery tu zminil Petr Synek) chova logicky a
ocekavatelne. Kdyz chci String nekam priradit, tak ho priradim, kdyz
chci vytvorit novy, pouziju new a konstruktor. Zakazat to nejde,
protoze se to zridka, ale preci jen hodi. Optimalizovat to (casto)
nejde: Ota tu mel priklad s rovnostmi, dalsi problematicke misto by
vybehlo pri synchronizacich.
new String("foo") v jazyce ma sve misto. Ale zaroven je to neco, co se
da snadno detekovat a snad vsechny nastroje na statickou analyzu kodu
pri takovem pouziti varuji. Takze pokud to clovek v kodu (at z
neznalostni nebo po rade uprav, kdy uz nevnima, kam az zasel) ma, tak
je u nej  spatne i neco jineho.
S pozdravem
        Ondřej Nekola



2011/2/8 Jiří Hradil <ji...@hradil.cz>:
> Rekl bych, ze prave:
>
> String s = new String( "Daka hodnota stringu" );
>
> je problem jazyka samotneho, ze neco podobneho umozni. Jazyk si ma
> optimalizace ridit vnitrne sam, nikoli to vyzadovat po programatorovi.
> Co ten chudak udelal neboheho? Vzdyt pouzil objekt String jako ostatni
> objekty, tak ho to v OOP ucili. To, ze Java na halde vytvori vzdy novy
> objekt a diky tomu pak muze byt program neefektivni, je problem
> samotneho navrhu jazyka, nikoli programatora. To je jako kdybych
> nekoho ucil sproste mluvit a pak ho zliskal za to, ze rekl ku..a :).
> Specialne primitivni typy a kockopsy jako String delaji Javu slozitou.

Odpovedet emailem