| Author |
Doubt in String's
|
santhosh.R gowda
Ranch Hand
Joined: Apr 06, 2009
Posts: 296
|
|
Dear all
i had attened one interview yesterday there the asked me the question below...
String s="abc";
if(s.equals("abc"))
{
}
if("abc".equals(s))
{
}
what is the difference between both the condition...he has given me one hint that under one condition they will differ
|
Creativity is nothing but Breaking Rules
|
 |
D. Ogranos
Ranch Hand
Joined: Feb 02, 2009
Posts: 213
|
|
For this particular example, there is absolutely no difference.
In the general case (assuming you don't know what value String s holds), think about what happens in each case if s == null
|
 |
zahid zubair
Ranch Hand
Joined: Aug 29, 2009
Posts: 32
|
|
D. Ogranos is right. Assume s is null.
throws NullPointerException
but
will never throw because you know that Left Hand Side string at the compile time itself that it can not be null. And putting a '.' operator on a non-null object will always let your program go smoothly without exceptions.
Else you would be required to code like this:
which unnecessarily brings in another && condition. Ofcourse, there could be tradeoffs if one could not easily understand why you have used "abc".equals(..) instead of the other approach.
|
 |
 |
|
|
subject: Doubt in String's
|
|
|