Please, Can somebody explain further what's is happening?
1) System.out.println((s1==s2)+" "+ s1==s2);
produces: false
2) System.out.println((s1==s2)+" "+ (s1==s2));
produces: true true
3) System.out.println("(s1 == s2)" + " " + (s1 == s2));
produces: (s1 == s2) true
2) and 3) seem to be comparing the variables content, not the reference.
Thanks in advance.
2009/7/20 Nimisha Sinha <[email protected]>
> In Java,String literals are stored in a literal pool.If two string literals
> are having same content,their references will be same too.
>
>
> On Mon, Jul 20, 2009 at 8:39 AM, miga <[email protected]> wrote:
>
>>
>>
>>
>> On Jul 20, 5:32 pm, Rohit Bansal <[email protected]> wrote:
>> > Let I had following code snippet,
>> > String s1="Hello";
>> > String s2=s1;
>> > System.out.println((s1==s2)+" "+ s1==s2);
>> >
>> > OUTPUT: false
>> >
>> > Query: I need understanding of output...its strange for sure but true;
>> When you use == for String, you state that the Strings have the same
>> contents AND the same reference.
>> Here contents are the same, but references are not.
>> If you want to compare contents, use equals method.
>> >>
>>
--
Jorge Ortalli
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/javaprogrammingwithpassion?hl=en
-~----------~----~----~----~------~----~------~--~---