黑马程序员技术交流社区
标题:
==和equals的区别
[打印本页]
作者:
伊廷文
时间:
2013-3-27 21:53
标题:
==和equals的区别
==和equals的区别
作者:
HM周一帆
时间:
2013-3-27 21:58
1.“==”用于比较两个同类型的值是否相等,而equal是比较两个object的实例是否相等(判断地址是否相同
)。// 不是变量引用的对象是否相等.
2.而string类型对象的==和equals 都是比较值,这是比较特殊的
2. "=="比"equal"运行速度快,因为"=="只是比较引用. 因为对象变量的存储的是对象在内存中的路径,即内存地址。所以用“==”比较时,即使对象的值相等,
3. ==比较的是栈内的内容,就是值类型的比较或者对引用的比较。
4. 值类型用“==”比较,就是比较的值,引用类型比较则是比较这两个引用类型的存在栈内的地址是否相同。
5. Equals()分为虚拟方法和静态方法两种
但是Equals()的虚拟方法常常被override,以比较引用类型实际的值,这是它最重要的用途,
6. Equals,比较的是两个对象的内容是否一样.
作者:
蔡陶军
时间:
2013-3-27 22:13
本帖最后由 蔡陶军 于 2013-3-27 22:20 编辑
楼主我理解是这样的
毕老师说过什么类型都可以进行比较;
“==”是比较的两个数据类型的值(内存中的地址)是否相等
范例:
public class TestDemo {
public static void main(String[] args) {
char a='c';
char b='c';
System.out.println(a==b);
}
}
“equals”是比较的两个String类型的类容是否一样
范例:
public class TestDemo {
public static void main(String[] args) {
String a="ccc";
String b="ccc";
System.out.println(a.equals(b));
}
}
另外如果有一个String声明了一个字符串,如果接下来有声明一个String的字符串变量也和第一个一样,那么他们用==和equals得到的结果都是true因为他们的内容一样,而且地址也是一样的,因为有一个字符串常量池。
范例:来个杂交的 让你自己看看
public class TestDemo {
public static void main(String[] args) {
String a="ccc";
String b="c";
String c=b+"cc";
String d="ccc";
System.out.println(a==d);
System.out.println(a.equals(d));
System.out.println(a.equals(c));
System.out.println(a==c);
}
}
打印结果是:
zajiao.PNG
(1.04 KB, 下载次数: 26)
下载附件
==and equals
2013-3-27 22:20 上传
作者:
丘凤光
时间:
2013-3-27 22:26
楼主搞笑的吧,这个问题被问过好多回的了,我都回答了两回了
版规里有说提问前先搜索一下的吧
作者:
丘凤光
时间:
2013-3-27 22:28
这个问题被问过好多回的了,我都回答了两回了
版规里有说提问前先搜索一下的吧
作者:
聂斌
时间:
2013-3-27 23:12
(1).==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。
(2).对于String a = “a”; Integer b = 1;这种类型的特有对象创建方式,==的时候值是相同的。
(3).基本类型没有equals方法,equals只比较值(对象中的内容)是否相同(相同返回true)。
(4).一个类如果没有定义equals方法,它将默认继承Object中的equals方法,返回值与==方法相同。
下面说说equals 方法:
equals 方法是Object类中的一个方法,一般会被子类复写,像String类就复写了Object类的equals方法,String类的equals方法是比较的字符串的内容(建议查看String类源代码就一清二楚了),如果子类没有复写Object类的equals方法的话,那么Object类的equals方法是这样实现的,源代码:
public boolean equals(Object obj) {
return (this == obj);
}
所以如果子类不重写equals方法的话,它就等价于==,,,,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2