==比的是两个对象的地址。 equals是java.lang.Object类的一个方法,默认跟"=="一样也是比的地址。如果判断对象相等有其他的标准(例如只要值相等就代表相等),那么就需要重写java.lang.Object的equals方法。String类就重写了此方法,只要对象值相等即可。
if("123".equals(str1))和if(str1=="123")的区别.. 例子中str1对象是按照原则2创建的,所以地址会相同。 如果String str1 = new String("123"),那么str1按照原则1创建,equals判断为true,==判断为false.