1.性质不同
equals()
是方法, 基本数据类型是无法调用的
==
这个是符号, 基本数据类型也可以调用
2.比较内容不同
1.==
始终比较的是内存地址
没有字面量这个概念
所以会出现 以下的比较
'a'==97
// true
2.equals
1.有自变量的概念
简单的讲,包装类
这些都是有自变量值的, 且重写了父类Object 的euqals方法
比较的是自变量值
String a="a";
String b="a";
a.equals(b)
// true
2.没有自变量
直接调用父类的Object方法, 比较的也是对象的地址
person p1=new person();
person p2=new person();
p1.equals(p2)
//false
3.使用
如果需要比较字面量值,应该使用
equals()
比较变量内存地址是否相同,则使用
==
1.注意
int numberA=1;
int numberB=1;
if(numberA == numberB){
.......
}
这个if条件是成立的 -------true
因为numberA numberB是指向同一内存地址,
这个与java声明对象的方式有关, 所以之前的这种写法都幸免遇难, 没有发生报错
本文详细解析了Java中equals方法与==运算符的区别,包括它们的性质、比较内容的不同及适用场景。equals用于比较对象的值是否相等,而==则比较对象的内存地址是否相同。

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



