equals和==的区别
equals和==的区别==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals操作表示的两个变量...
equals和==的区别
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
(
“在堆中存储的地址是否相同”和“堆中的内容是否相同”有什么区别???总感觉是一个样的阿。。
) 展开
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
(
“在堆中存储的地址是否相同”和“堆中的内容是否相同”有什么区别???总感觉是一个样的阿。。
) 展开
36个回答
展开全部
equals 只是比较值是否相同
而==则是比较两个变量 是不是同一个变量,也应时是说
要看看这两个变量是不是引用的同一个地址,
java 中只有引用地址相同的两个变量才被视为==
如果明白值传递与地址传递的话,这个问题应该不难理解
而==则是比较两个变量 是不是同一个变量,也应时是说
要看看这两个变量是不是引用的同一个地址,
java 中只有引用地址相同的两个变量才被视为==
如果明白值传递与地址传递的话,这个问题应该不难理解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
equals判断字符串值内容是否相等
==判断类型内存地址是否相同
如String aa="sss" aa变量占用了内存地址如001,
String bb="sss" aa变量则占用了其他内存地址如002;
aa.equals(bb)比较字符串值都是sss则返回true
而aa==bb 比较内存地址,一个是001一个是002,则返回false
==判断类型内存地址是否相同
如String aa="sss" aa变量占用了内存地址如001,
String bb="sss" aa变量则占用了其他内存地址如002;
aa.equals(bb)比较字符串值都是sss则返回true
而aa==bb 比较内存地址,一个是001一个是002,则返回false
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
==比较的是地址
equals比较的是值
具体什么时候用,一般的来说
基本数据类型比较用 ==就可以了
引用数据类型比较 大多用equals
equals比较的是值
具体什么时候用,一般的来说
基本数据类型比较用 ==就可以了
引用数据类型比较 大多用equals
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
equals 是比较的两个字符串是否一样
比如 “asd”.equals(“asd”)==true;
"==" 它比较的是两个“引用”
比如:
String a=new String ("a");
String b=new String ("a");
System.out.println(a==b)它就输出false了
因为不是一个引用啊(虽然都是a);
比如 “asd”.equals(“asd”)==true;
"==" 它比较的是两个“引用”
比如:
String a=new String ("a");
String b=new String ("a");
System.out.println(a==b)它就输出false了
因为不是一个引用啊(虽然都是a);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先要了解到地址和内容的区别,在计算机内存管理中,是通过地址来查找内容的。举个例子,计算机中的地址好比现实中的家庭地址,而内容相当于家里的某个人,当我们想要查找某个变量的内容时,首先通过地址找到变量的存储位置,然后再从内存中取出内容比较。
对于重写了equals方法的类库(String, Integer等),== 判断两个对象是否指向同一个引用,比较的是堆内存中的地址;而equals出了比较地址还比较“内容”是否一致。
对于只是简单继承Object类equals方法的类库,equals和==的作用是相同的,因为在Object类中equals方法只是用==来进行判断,如果地址相同则返回true
==可以用来比较基本类型和引用类型,而equals只能用于引用类型的比较。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询