Q. 13 Which of the following return true? A."john" == "john" B."john".equals("john") C."john" = "john" D."john".equals(new Button("john")) Select all correct answers. answer:A i answered A, B,D.Can anyone verify me Thanks
leena rane
Ranch Hand
Joined: Aug 13, 2001
Posts: 280
posted
0
I feel it is a,b
Jane Griscti
Ranch Hand
Joined: Aug 30, 2000
Posts: 3141
posted
0
Hi Anu, The best way to test the results is to write some code and try it
And the answer is:
------------------ Jane Griscti Sun Certified Programmer for the Java� 2 Platform
-------------------------------------------------------------------------------- The anwsers are A,B for the following reason. 1. The string literal "john" is interned and a single instance is maintained so the expression "john" == "john" both refer to the same object and hence it returns true. 2. I will skip this since it is obvious 3. The third statement won't compile. You can't assign a value to a String literal 4. In the fourth case you are comparing a String object with a Button object and hence will return false. Actually the reason it returns false is the way the equals method is usually coded. (This is a recommended practice if you are provide your own equals method for a class) Ex: ... class String { public boolean equals(Object o) { if ( o == null ) { return false; } else if ( !(o instanceof String)) { return false; } else { // do the actual value comparison } } Take a look at java.lang.String to get a better idea...
anu k
Greenhorn
Joined: Sep 18, 2001
Posts: 2
posted
0
thanks leena,jane and prakash..it is clear now
Jane Griscti
Ranch Hand
Joined: Aug 30, 2000
Posts: 3141
posted
0
anu k, Please read the JavaRanch Name Policy and re-register using a name that complies with the rules. Thanks for your cooperation. ------------------ Jane Griscti Sun Certified Programmer for the Java� 2 Platform
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.