为了账号安全,请及时绑定邮箱和手机立即绑定

equal和==的区别?

equal和==的区别?

AI方法 2016-08-01 14:37:27
查看完整描述

7 回答

已采纳
?
211103

TA贡献20条经验 获得超11个赞

首先在内存中的方法是equals不是equal。

要深入的了解这个你需要具体知道数据在内存中的存储方式,基本数据类型和引用数据的地址是存储在栈中,==就是比较的这个内容。equals的话其实也是这个,在java共同父类中Object中有这个方法,不过其在String中将他进行了重写(因为对于引用数据来讲比较地址是没用的,需要具体到值),最终在String中equals比较的就是他们的值。

其实你只要记住比较基本数据类型用==就好,String的话就用equals就好了。

查看完整回答
5 反对 回复 2016-08-01
  • AI方法
    AI方法
    感谢你的回答,解决了我的疑问。我之前也知道大概是怎么比较的,就是有时候说equals是比较地址,有时候比较内容。后来你说重写方法。因为比较地址没意义。点开了我的疑惑。
  • 211103
    211103
    不客气
?
阿旭_

TA贡献217条经验 获得超353个赞

public class Test5 extends Object {
	public static void main(String[] args) {
		// 分析equals不同类中的源码比较与==的不同

		// /*1、类中equals 此equals来源于Object(默认:Test5 extends Object )*/
		// public boolean equals(Object obj) {
		// return (this == obj);
		// }
		System.out.println(new Test5().equals(new Test5()));// 此时equals比较两个不同对应的地址
		
		// /*2、字符串equals ("ABC".equals("ABC")和new String("ABC").equals("ABC")等价)*/

		// public boolean equals(Object anObject) {
		// if (this == anObject) {//2.1 先判断两个地址是否相同
		// return true;
		// }
		// if (anObject instanceof String) { //2.2 再判断传入的是不是字符串
		// String anotherString = (String) anObject;
		// int n = value.length;
		// if (n == anotherString.value.length) {//2.3如果是字符串,长度是否相同
		// char v1[] = value;
		// char v2[] = anotherString.value;
		// int i = 0;
		// while (n-- != 0) {//2.4如果长度相同,是不是每个对应位置的字符相同
		// if (v1[i] != v2[i])
		// return false;
		// i++;
		// }
		// return true;
		// }
		// }
		// return false;
		// }
		System.out.println("ABC".equals("ABC"));// 地址(否)字符串(是字符串)长度(相同)每个字符(相同)结果是true

		// 总结,equals就是一个方法,不同的类有不同的代码,也可以自己重写设置自己想要的方法体。
		// 归根结底都要用==来比较值(char[字符串就是用的这个比的]、int、boolean……),要么比较地址(两个对象地址是不是一样的)
	}
}


查看完整回答
1 反对 回复 2016-08-01
?
xiao梦

TA贡献9条经验 获得超3个赞

equals()一般是比较字符串内容是否相等。==用于比较对象的内存地址是否相同。

查看完整回答
1 反对 回复 2016-08-01
?
Crumble_3614235

TA贡献1条经验 获得超0个赞

==比较的是对象的内容还有地址是否一致

equals 比较的是对象的内容是否一致

查看完整回答
反对 回复 2016-08-01
?
ziom

TA贡献948条经验 获得超1109个赞

前者一般用于比较两个字符串,后者用于比较两个对象的内存地址是否相同。

查看完整回答
反对 回复 2016-08-01
?
AI方法

TA贡献4条经验 获得超74个赞

equal判断的事内容,==判断的是地址 这样说对吗

查看完整回答
反对 回复 2016-08-01
  • 7 回答
  • 1 关注
  • 2591 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信