In Java if you actually want to test whether two strings
have the same value you should use .equals(). It checks value equality.
I think most of the people knew it.
Today I
want to add a very valuable tip:
If you have strings or constants to compare, always put them first in the equals clause.
//StringComparisonTip.java public class StringComparisonTip { public static void main(String[] args) { // Recommended String comparison if("Venkatesh".equals(getMyName())){ System.out.println("We are equal"); } // It is Correct but it may be throws NPE at runtime if(getMyName().equals("Venkatesh")){ System.out.println("We are equal"); } } public static String getMyName(){ return null; } }
In the above code line #5 (if("Venkatesh".equals(getMyName()))) is much better than the line #9 (if(getMyName().equals("Venkatesh"))) because in the second case getMyName() may be null and throws an java.lang.NullPointerException while in the first case it doesn't matter if getMyName() is null.
Note: I am not saying second one is wrong but I am saying it is not recommended by Java Guru's(Who has great knowledge in Java). Both are syntactically correct and you never get compilation error.
Note: I am not saying second one is wrong but I am saying it is not recommended by Java Guru's(Who has great knowledge in Java). Both are syntactically correct and you never get compilation error.