aspose file tools*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes General problems.. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "General problems.." Watch "General problems.." New topic
Author

General problems..

vikky agrawal
Ranch Hand

Joined: Dec 18, 2008
Posts: 65

prints Not equal.

why that so??

it happens also if





scjp 6
http://algorithmsea.blogspot.com
Pawan Arora
Ranch Hand

Joined: Sep 14, 2008
Posts: 105
Hi,

use equal method whenever you want to compare two strings. The following will result in equal as an output:

Ruben Soto
Ranch Hand

Joined: Dec 16, 2008
Posts: 1032
Basically, == is checking reference identity (do the references refer to exactly the same String object in the heap?) In this case you have different dynamically generated String objects, so the == test will return false.


All code in my posts, unless a source is explicitly mentioned, is my own.
vikky agrawal
Ranch Hand

Joined: Dec 18, 2008
Posts: 65
String object remains in heap and if any string present there then that string refers to that string
thus


but not for above mentioned cases why??


Bob Wheeler
Ranch Hand

Joined: Apr 24, 2009
Posts: 317
If you look into the replace method you find this line to create a new String:

And as we know, if the new keyword is used, a new object is created even if this string literal is already there.
And if a new string object is created, your code prints a not equal.

check also this out:

This code also creates two string objects.

Hope I could help.
cheers
Bob


SCJP 6 - SCJD - SCWCD 5 - SCBCD 5
JavaEnterpriseEditionFaq - TomcatFaq
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9313
    
  17

vikky.ag agrawal wrote:String object remains in heap and if any string present there then that string refers to that string


Well you need to understand that there is a pool of strings maintained by the JVM for faster String processing. It would be worth to give this article a reading...


SCJP 6 | SCWCD 5 | Javaranch SCJP FAQ | SCWCD Links
vikky agrawal
Ranch Hand

Joined: Dec 18, 2008
Posts: 65
Bob wrote..
If you look into the replace method you find this line to create a new String:


Thanks bob it really helped me..
vikky agrawal
Ranch Hand

Joined: Dec 18, 2008
Posts: 65
i was just trying to practice and

why the value of s4 didn`t point to s3 in heap??

Santhosh Kumar
Ranch Hand

Joined: Nov 07, 2000
Posts: 242
Bottom line is that every time you mutate a String object, you get a brand new String object which is not same any other String objects created earlier (even if the content is same). So here s3 is new object and so is s4. That's why == comparison shows as false.
vikky agrawal
Ranch Hand

Joined: Dec 18, 2008
Posts: 65
Santhosh Kumar wrote:Bottom line is that every time you mutate a String object, you get a brand new String object which is not same any other String objects created earlier (even if the content is same). So here s3 is new object and so is s4. That's why == comparison shows as false.

thanks santosh i got the idea.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: General problems..