1.==和equals的区别
-
==
在基本数据类型的时候就是比较值是否相同,而在引用类型时是比较地址 -
Object
中的equals()
方法返回的是==
的判断,而被重写的equals()
方法用于判断引用类型的值
2.注意(在不手动new对象的情况下)
-
生成字符串时先查询字符串常量池中是否存在当前字符串,否则默认为该字符串为常量存放在常量池,相同字符串常量指向常量池中的一个对象(地址)
-
包装类如Interger,如果右边值在-128和127之间则从缓存区找对象(相同值为同一对象),否则生成新的对象(如下图测试)
3.测试
public static void main(String[] args) {
Integer integer1 = 1;
Integer integer2 = 1;
Integer integer3 = 128;
Integer integer4 = 128;
System.out.println(integer1 == integer2);//true
System.out.println(integer4 == integer3);//false
}