两个对象相等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

你可能感兴趣的:(虚拟机,百度,Blog)