本帖最后由 黄玉昆 于 2013-2-11 18:13 编辑
String s1 = "abc";
String s2 = new String("abc");
这两句代码互换位置有什么不同
翻阅相关资料,才发现有些不同点:
对于上面的代码,有一点要说的:就是无论String s2 = new String("abc")在s1前面写还是后面写,s2都会检查StringPool中是否有"abc",
若有,就直接在堆内存中创建一个对象;若没有,则要先在StringPool中创建"abc"后,再在堆内存中创建一个对象。
具体请看我对String的总结:http://blog.csdn.net/shengfeixiang/article/details/8577842
|