黑马程序员技术交流社区
标题:
equals和==的区别?
[打印本页]
作者:
福娃51zx
时间:
2015-3-24 16:14
标题:
equals和==的区别?
本帖最后由 福娃51zx 于 2015-3-25 19:59 编辑
equals和==两者用法有什么区别?
作者:
剑雨飘扬
时间:
2015-3-24 16:30
字符串的比较要用equals,用==比较的不是内容而是地址。
作者:
福娃51zx
时间:
2015-3-24 16:32
==也可以比较对象啊,比较对象时有什么区别么?
作者:
圣光忏悔
时间:
2015-3-24 16:33
==比较对象是默认比较对象的地址值,equals是比较的值
最浅显的 String s1 = "a";
String s2 = new String("a");
==是false
equals是true
作者:
福娃51zx
时间:
2015-3-24 16:40
int a=3;
int b=3;
if(a==b){
System.out.println("是");
}else{
System.out.println("不是");
}
可是这里是比较内容的,输出是,不是比较内存地址的
作者:
奋斗的黑马
时间:
2015-3-24 17:18
== 和 Equals 的区别
1. == 是一个运算符。
2.Equals则是string对象的方法,可以.(点)出来。
我们比较无非就是这两种 1、基本数据类型比较 2、引用对象比较
1、基本数据类型比较
==和Equals都比较两个值是否相等。相等为true 否则为false;
2、引用对象比较
==和Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false;
需注意几点:
1、string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同;
2、当你创建两个string对象时,内存中的地址是不相同的,你可以赋相同的值。
所以字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的;
3、基本数据类型比较(string 除外) == 和 Equals 两者都是比较值;
作者:
ruchsky
时间:
2015-3-25 14:39
在比较字符串的时候建议equals,他们区别是在于 equals比较的两边内容是否相等,用==比较的是它们是否指向同一块内存,也即是同一个对象引用
作者:
邓熊财
时间:
2015-3-25 16:28
个人理解哈!1.5以后的版本和以前的就有很大的区别,==不能用于字符串之间的比较,1.5以后在对象包装类当中超过127的数据用==也是无法比较的吧!说的不对的还望见谅
作者:
奋斗的黑马
时间:
2015-3-25 20:13
奋斗的黑马 发表于 2015-3-24 17:18
== 和 Equals 的区别
1. == 是一个运算符。
谢谢了!!!请问您现在是黑马的学员吗??
作者:
qq563426478
时间:
2015-3-25 21:07
equals比较的是值 ==比较的是内存地址
作者:
和谐木马
时间:
2015-3-26 01:02
不能直接笼统的就来句equals()比较的是值的吧……equals()方法要看你怎么重写object类的方法么,不过一般都是重写的比较值的……
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2