首先,要明确“==”和equals()的区别,object类中的equals()方法是最原始的,它的原理就两个对象做“==”比较,看参考jdk1.7中src压缩包中的源码,也可以在eclipse中查看object类的equals()方法源码;而String类中的equals()方法是被重写过的,不再是做“==”单纯的地址比较,equals()方法是比较两个字符串对象的内容, String s3 = new String(); String s4 = new String();是两个对象,他们的地址值不同,s3==s4;这样写是false。但是s3,s4是被新创建的字符串对象,都是调用无参构造方法,也没有任何的赋值动作,所以他们都是空字符串对象,所以内容相同,所以 System.out.println(s3.equals(s4));//结果是true
|