我个人的理解
String x="bv";这个是在栈中创建的,栈中的数据具有不可更改性,就是说你再创建一个String y="bv";
它会先在栈中寻找字面值为bv的地址,如果存在这样的地址就指向它(否则就在栈中新开辟一个字面值为bv的内存地址) 因此这儿x==y 因为他们指向同一块内存地址 无论== equals结果都是true


String v=new String("bv"); 通过new的方式在堆创建一个对象,new是在堆中开辟一个新的处女地,因此即便你再String vvv=new String("bv");v和vvv也不可能相等。

当然你题目中的x v 分别处于栈、堆中 也不可能相等
posted on 2014-09-12 17:39  yuyezhulan  阅读(440)  评论(0编辑  收藏  举报