1、对于对象引用类型:“==”比较的是对象的内存地址。
所以就算两个对象的值相等,它们也是不等的(因为每个对象的地址都是不一样的)
2.对于基本类型数据,“==”其实比较的是它的值。
所以一般用==来比较两个数字大小是不是相等的
来看下代码,更容易理解:
public static void main(String[] args) {
//一。引用类型
A a1 = new A();
A a2 = new A();
//比较的是对象的地址
System.out.println(a1 == a2);//false
Integer integer1 = 180;//java内部有自动装箱操作,会将int类型的18转换成包装类Integer类型
Integer integer2 = 180;
//比较的是对象的地址
System.out.println(integer1 == integer2);//false,因为integer1与integer2是两个不同的对象,地址肯定不一样
//二。基本类型
int int1 = 18;
int int2 = 18;
System.out.println(int1 == int2);//true 基本类型比较的是具体的值
//三。注意事项(java的自动装箱与拆箱)
//从int类型转换成Integer类型,叫做装箱
//从Integer类型转换成int类型,叫做拆箱
//==自动装箱注意点:内部人员已经将-128到127之间的整数装箱完毕,当程序中使用该范围之间的整数时,无需装箱直接取用自动装箱池中的对象即可,从而提高效率;==
Integer integer3 = 18;
Integer integer4 = 18;
//比较的是对象的地址
System.out.println(integer3 == integer4);//true , java内部-128到127之间所有整数都有一个已经封装好的对象,integer3和integer4其实调用的是一个对象,地址自然一样
}
最新大厂IT课程:
点击获取
版权声明:本文为qq_40835367原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。