java中双等于号==比较的是什么

  • Post author:
  • Post category:java




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 版权协议,转载请附上原文出处链接和本声明。