(1)对于字符串变量来说,使用“= =”和“equals()”方法比较字符串时,其比较方法不同。
“= =”比较两个变量本身的值,即两个对象在内存中的首地址。
“equals()”比较字符串中所包含的内容是否相同。
(2)对于非字符串变量来说,“= =”和"equals"方法的作用是相同的都是用来比较其
对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。
注意:
(1)如果是基本类型比较,那么只能用“= =”来比较,不能用equals
(2)对于基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,
“= =”是比较地址的,而equals是比较内容的。
总结的来说:
1)对于==,比较的是值是否相等
如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
如果作用于引用类型的变量,则比较的是所指向的对象的地址
2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象
如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
关于==和equals的区别
最新推荐文章于 2025-02-13 10:01:50 发布
31万+

被折叠的 条评论
为什么被折叠?



