本帖最后由 易伟 于 2012-2-2 22:05 编辑
我也来讲讲见解:
String str1=new String("hello");
String str2=new String("hello");
这里面涉及到常量池、堆、栈
首先检测常量池中有无字符串"hello",没有就创建一个,然后把它复制一份放进你在堆中创建的对象
有,就直接把它复制一份放进你在堆中创建的对象
String str1=new String("hello");因为使用了new运算符,所以在堆中会创建一个对象str1
String str2=new String("hello");");因为使用了new运算符,所以在堆中会创建一个对象str2
显然这两个对象的地址不一样,因此用==比较时,返回false,注意==比较的地址值而不是地址中的内容
|