java中==和equals的区别

    在正常windows配置java环境环境中,声明两个数据类型相同、值相同的变量,用==号进行判断:

            java2-1.jpg

        图中声明两个个integer 类型的变量a,b 皆赋值为1 然后编译运行

            java2-2.jpg

        结果返回true,并没有什么问题,然后将==改为equals  编译运行 也返回true

            java2-3.png

            java2-2.jpg

        此时来看== 和 equals并没有什么区别,但是当声明变量值为Integer对象中的1时候就会出现问题

            java2-4.jpg

        图中a和b的值是相同的,但是用==号判断,会返回false

            java2-5.jpg

        但是用equals比较则会返回true

    因为在java== 是判断 基本数据类型的比较和引用是否指向堆内存的同一块地址,而equals判断 用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,所以在判断中若想要判断地址相同使用==只进行值判断则用equals会更不容易出错。

关键词:
返回列表

相关文章

相关案例