黑马程序员技术交流社区
标题:
"=="和equals方法究竟有什么区别?
[打印本页]
作者:
zhanghuxin
时间:
2013-11-17 10:57
标题:
"=="和equals方法究竟有什么区别?
求指点:"=="和equals方法究竟有什么区别?
作者:
狼王
时间:
2013-11-17 11:03
关于这样的问题,百度上挺多的,可以百度一下
http://blog.csdn.net/yangliu9420/article/details/5480444
作者:
mayor125
时间:
2013-11-17 11:17
“==”比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆内存中存储的地址是否相同,即栈内存中的引用地址是否相同。
equals()表示两个变量是否是对同一个对象的引用,即堆内存中的内容是否相同。
“==”比较的是两个对象在堆内存中的地址,而equals()比较的是两个对象的内容。
class Demo
{
public static void main(String[] args)
{
String str1 = new String("abc");
String str2 = new String("abc");
System.out.println(str1==str2); //false
System.out.println(str1.equals(str2)); //true
}
}
复制代码
由于str1和str2是两个不同的对象,所以它们在内存中的地址肯定也是不同的,所以表达式str1==str2返回的是false,而这两个对象中内容是相同的,都是“abc”,所以表达式str1.equals(str2)将返回true。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2