首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

两个对象相等equals跟==的区别

2012-10-27 
两个对象相等equals和的区别比如:String s1 abcString s2 new String(abc)equals返回true,但

两个对象相等equals和==的区别
比如:String s1 = "abc";
      String s2 = new String("abc");

equals返回true,但是不“==”,但是他们的hashcode是相同的,为什么不“==”

最佳答案

String s1 = "abc";
s1指向了“abc”
String s2 = new String("abc");
生成了对象new String("abc");s2指向这个对象,这个对象引用了“abc”;
equals意义是判断内容是否一直因为s1内容为“abc”,s2内容也为“abc”因此返回true。
==是判断引用是否一致,s1、s2指向不同所以返回false。
83299387gvirus说法不对“abc”只生成一次,具体是生成在堆还是栈不同虚拟机实现原理不同。

引用自:百度知道。
具体可以参照:http://yyp003.iteye.com/blog/563694

热点排行