Java 中 == 与 equals() 的区别

xiaoxiao2021-02-28  93

基本数据类型:数据的值直接存储在内存的栈空间 引用数据类型:引用对象的首地址存储在内存的栈空间,而对象的值存储在内存的堆空间。 在引用数据类型中,比较的是内存中首地址是否相等,由于new出来的对象在堆上开辟了两个独立的空间,地址也当然是不同的。

== 用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同。

equals 方法用于比较两个独立对象的内容是否相同,也就是用于比较内存地址是否相同,它比较的两个对象是独立的。

== 可以比较引用类型及基本类型 equals()方法只能比较引用类型

String a = new String("xyz"); String b = new String("xyz");

两条new语句创建了两个对象,然后用a、b这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即a和b中存储的数值是不相同的,所以,表达式a==b将返回false,而这两个对象中的内容是相同的,所以,表达式a.equals(b)将返回true。

转载请注明原文地址: https://www.6miu.com/read-49241.html

最新回复(0)