日期:2014-05-20  浏览次数:20791 次

我也来发个月经贴
String a = new String("abc");

String b = "abc";

System.out.println(a == b);

为什么他们不相等啊?

求教了。

------解决方案--------------------
内存地址不一样
------解决方案--------------------
楼主 果然来月经~~~已经给好多人买了卫生巾了 楼主要不要 要就先散分哈~~
------解决方案--------------------
呵呵,月经期过了就明白了。

- -111
------解决方案--------------------
接分走人~~
------解决方案--------------------
小绵羊被狼吓傻了
------解决方案--------------------
一般都这样用。。。
Java code

a.equals(b)

------解决方案--------------------
你真是不懂楼主为啥会痛 那不是月经痛 那是深深的蛋痛
探讨
一般都这样用。。。

Java code

a.equals(b)

------解决方案--------------------
我知道LZ是来送分的.我就收下了 哇哈哈
------解决方案--------------------
String a = new String("abc");
上面生成了两个对象一个是在堆区,一个是在常量区。那两个变量指向的堆地址不一样!
------解决方案--------------------
值相同,地址不同!!!
------解决方案--------------------
探讨

内存地址不一样

------解决方案--------------------

探讨

你真是不懂楼主为啥会痛 那不是月经痛 那是深深的蛋痛
引用:
一般都这样用。。。

Java code

a.equals(b)

------解决方案--------------------
==比较的是地址。。。哈哈,lz真好玩。。。
------解决方案--------------------
JAVA编译器的BUG。接分+1
------解决方案--------------------
探讨
引用:

内存地址不一样


收分 LZ真大方

------解决方案--------------------
楼主 ~~~懂你的人不多啊·~~
这不是月经痛 ~是深深的蛋痛

好人啊 咱们就收分走人·
------解决方案--------------------
存放地址不同,分分分分分分分分分
------解决方案--------------------
报告楼主,俺是来接分的....
------解决方案--------------------
没的说,接分
------解决方案--------------------
String a = new String("abc"); new了一个对象并存放在堆中。。
String b = "abc";存放在常量池中。
两者内存地址不一样。。。
而=号的作用:
1. 比较两个变量值是否相等。
2. 如果引用型变量,则比较两个变量在堆中存放的地址是否相等。

而上面一个在堆中,一个在常量池。。无比较可言。。所以false了。。。。
------解决方案--------------------
+楼主散分了

探讨
String a = new String("abc"); new了一个对象并存放在堆中。。
String b = "abc";存放在常量池中。
两者内存地址不一样。。。
而=号的作用:
1. 比较两个变量值是否相等。
2. 如果引用型变量,则比较两个变量在堆中存放的地址是否相等。

而上面一个在堆中,一个在常量池。。无比较可言。。所以false了。。。。

------解决方案--------------------
jvm出bug了,不用在意。
------解决方案--------------------