==和equals的区别

我们知道== 和 equals 都是比较是否相等,比如在程序中任何东西都是数据,都会比较是否相等[对象 ]

下面介绍一下我们在比较的时候到底是在比较什么:

1.== 比较运算符:

           ① 基本数据类型变量:    比较的就是值是否相等;

           ② 引用数据类型变量:    比较的是对象的地址是否一样;(排除特殊 String)

2. equals 方法[最初定义在根类Object中的,比较对象是否相等]方法里面  ==

            ①  基本数据类型:  不能够使用!   基本数据类型不是对象,不能够调用Object中的方法

            ②  引用数据类型 :  但是在Object的源码中定义的就是 == 进行比较

            ③    定义好的类没有覆写过equals方法,则会直接调用到了Object中的equals方法,那么本质还是在使用==比较

             而我们在实际开发中,自定义类:一般比较对象,都是通过对象的属性值进行比较,所以自定义类,会经常覆在自定义的类中写Object中的此方法,把自己的比较规则写在方法里面;

覆写equals方法的意义:定义类,覆写equals方法,自己制定规则,比较自定义类对象的静态属性

小结:比较基本数据类型:==  比较对象用  equals方法

你可能感兴趣的:(==和equals的区别)