java里 equals和== 区别
9个回答
展开全部
1、java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
2、==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
3、equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
4、==比较的是2个对象的地址,而equals比较的是2个对象的内容,显然,当equals为true时,==不一定为true。
2、==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
3、equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
4、==比较的是2个对象的地址,而equals比较的是2个对象的内容,显然,当equals为true时,==不一定为true。
展开全部
equals适用于任何值或者对象的比较
在没有重写equals方法之前,作用等同于“==”,重写之后的比较规则由重写的逻辑确定
“==”在基本类型的比较,是值的比较,在引用类型之间的比较,是对象内存地址的比较。
像类似String类的equals方法已经被重写,比较的是字符串的序列是否一致。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-06-02 · 知道合伙人软件行家
关注
展开全部
两者比较的指向不一样:
==是判断两个变量是不是指向同一块内存空间;equals是判断两个变量所指向的内存空间的值是不是相同
==是判断两个变量是不是指向同一块内存空间;equals是判断两个变量所指向的内存空间的值是不是相同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
==用来比较两个基本数据类型的值是否相同。
equals用来比较两个对象的内容是否一致
equals用来比较两个对象的内容是否一致
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
equals
public boolean equals(Object obj)
指示其他某个对象是否与此对象“相等”。
equals 方法在非空对象引用上实现相等关系:
自反性:对于任何非空引用值 x,x.equals(x) 都应返回
true。
对称性:对于任何非空引用值 x 和 y,当且仅当
y.equals(x) 返回 true 时,x.equals(y) 才应返回
true。
传递性:对于任何非空引用值 x、y 和 z,如果
x.equals(y) 返回 true,并且 y.equals(z) 返回
true,那么 x.equals(z) 应返回 true。
一致性:对于任何非空引用值 x 和 y,多次调用
x.equals(y) 始终返回 true 或始终返回 false,前提是对象上
equals 比较中所用的信息没有被修改。
对于任何非空引用值 x,x.equals(null) 都应返回
false。
Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值
x 和 y,当且仅当 x 和 y
引用同一个对象时,此方法才返回 true(x == y 具有值 true)。
注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode
方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
参数:
obj - 要与之比较的引用对象。
返回:
如果此对象与 obj 参数相同,则返回 true;否则返回 false。
public boolean equals(Object obj)
指示其他某个对象是否与此对象“相等”。
equals 方法在非空对象引用上实现相等关系:
自反性:对于任何非空引用值 x,x.equals(x) 都应返回
true。
对称性:对于任何非空引用值 x 和 y,当且仅当
y.equals(x) 返回 true 时,x.equals(y) 才应返回
true。
传递性:对于任何非空引用值 x、y 和 z,如果
x.equals(y) 返回 true,并且 y.equals(z) 返回
true,那么 x.equals(z) 应返回 true。
一致性:对于任何非空引用值 x 和 y,多次调用
x.equals(y) 始终返回 true 或始终返回 false,前提是对象上
equals 比较中所用的信息没有被修改。
对于任何非空引用值 x,x.equals(null) 都应返回
false。
Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值
x 和 y,当且仅当 x 和 y
引用同一个对象时,此方法才返回 true(x == y 具有值 true)。
注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode
方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
参数:
obj - 要与之比较的引用对象。
返回:
如果此对象与 obj 参数相同,则返回 true;否则返回 false。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
equals 比较的字符串内容 而 == 比较的是存储字符串的二进制地址!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询