Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » J2EE Interest »

Re: new String

Mike New

2005-10-17

Replies:

> this may help;
>
> String s1="aString";
> String s2="aString";
> String s3=new String("aString");
> String s4=new String("aString");
>
> s1==s2 // TRUE
> s1==s3 // FALSE
> s1==s4 // FALSE
>
> s3==s4 // FALSE   <--- here
>
> Frans is absolutely right ;)

I note that if

String s5 = "a" + "String";

then
s5 == s1 // TRUE.

So we see Strings are being shared even when "created" via other
operations, but NOT when created via "new String(String s)".

Since they're immutable, there's no benefit to having multiple identical
Strings in memory. Smalltalk does this with numbers too, I believe!

Mike New

>
>
>
>>From: Mark Galbreath <mgalbreath@(protected)>
>>Reply-To: mgalbreath@(protected)
>>To: J2EE-INTEREST@(protected)
>>Subject: Re: new String
>>Date: Mon, 17 Oct 2005 08:14:08 -0400
>>
>>This is not true. Since strings are immutable, a new string instances
>> will
>>be created no matter what method is used. The two are equivalent.
>>
>>Cheers,
>>Mark
>>
>>
>>Frans Verhoef wrote:
>>
>>>Hi,
>>>String s1 = "test" is definitely preferred, as the other version creates
>>>two objects containing "test". Also, when you assign many times "test"
>>> to
>>>a string object, than only one string is created in memory, while if you
>>>use new String("test"), a new string is created every single time.
>>>
>>>For example:
>>>
>>>String[] s = new String[1000000];
>>>for (int i=0; i<1000000; i++) s[i] ="test"; // uses hardly any memory
>>>
>>>for (int i=0; i<1000000; i++) s[i] = new String("test"); // uses lots of
>>>memory, as each time a new string is created
>>>
>>>Cheers,
>>>Frans
>>>
>>>On Sun, 16 Oct 2005 16:00:49 +0530, KR Kumar wrote:
>>>
>>>
>>>>Hi,
>>>>
>>>>Plz let me know which one is better in terms of performace between
>>>>the two of the following approaches for string initialization
>>>>
>>>>String s1 = new String(?test?)
>>>>
>>>>Or
>>>>
>>>>String s1 = ?test?
>>>>
>>>>Kumar
>>>>======================================================================
>>>>===== To unsubscribe, send email to listserv@(protected)
>>>>include in the body of the message "signoff J2EE-INTEREST". For
>>>>general help, send email to listserv@(protected)
>>>>the body of the message "help".
>>>>
>>>>
>>>
>>>===========================================================================
>>>To unsubscribe, send email to listserv@(protected)
>>>body
>>>of the message "signoff J2EE-INTEREST". For general help, send email to
>>>listserv@(protected)".
>>>
>>>
>>>
>>>
>>
>>===========================================================================
>>To unsubscribe, send email to listserv@(protected)
>> body
>>of the message "signoff J2EE-INTEREST". For general help, send email to
>>listserv@(protected)".
>
> ===========================================================================
> To unsubscribe, send email to listserv@(protected)
> body
> of the message "signoff J2EE-INTEREST". For general help, send email to
> listserv@(protected)".
>


------------------- _/ /// // --------------------

===========================================================================
To unsubscribe, send email to listserv@(protected)
of the message "signoff J2EE-INTEREST". For general help, send email to
listserv@(protected)".
©2008 junlu.com - Jax Systems, LLC, U.S.A.