对于==和equals大家可能都比较熟悉,这里就不说了
但如果对于equals方法执行顺序问题,可能有的人就有点糊涂,比如:笔试的时候,可能会出
用equals方法判断字符串str是否为空字符串"",并说出"".equals(str)和str.equals("")的区别,哪个方式更好?
按照平时的习惯,a是否等于b,肯定就是a.equals(b),
如果针对上面的笔试题,如果字符串str=null的话,用str.equals("")就会抛出空指针的异常,例:
String str = null;
System.out.print(str.equals(""));
运行后,结果为:
Exception in thread "main" java.lang.NullPointerException
但如果改为:
String str = null;
System.out.print("".equals(str));
就不会抛出异常
所以好的编程习惯会增加程序的健壮性
但如果对于equals方法执行顺序问题,可能有的人就有点糊涂,比如:笔试的时候,可能会出
用equals方法判断字符串str是否为空字符串"",并说出"".equals(str)和str.equals("")的区别,哪个方式更好?
按照平时的习惯,a是否等于b,肯定就是a.equals(b),
如果针对上面的笔试题,如果字符串str=null的话,用str.equals("")就会抛出空指针的异常,例:
String str = null;
System.out.print(str.equals(""));
运行后,结果为:
Exception in thread "main" java.lang.NullPointerException
但如果改为:
String str = null;
System.out.print("".equals(str));
就不会抛出异常
所以好的编程习惯会增加程序的健壮性