String s1=new String("abc");
String s2="abc"
如果abc没有被new的话会在String池中创建abc,如果new的话会在堆中new出的对象,在栈中创建引用对吗?
java中存在string池,常规区,代码区,堆栈还有什么不清楚,谁能帮我梳理下
String s2="abc"
如果abc没有被new的话会在String池中创建abc,如果new的话会在堆中new出的对象,在栈中创建引用对吗?
java中存在string池,常规区,代码区,堆栈还有什么不清楚,谁能帮我梳理下
至于原理,建议楼主看一下
http://blog.csdn.net/songjie521/article/details/3368386
感觉写的还不错
但是new出来的对象是放在堆中的;
String s1=new String("abc"); 这条语句,创建对象为1或两个;
为什么呢?
首先“abc"这个字符串,如果常量池里面已经存在的话,就不需要重新创建了,因此这就不算创建了一个新的对象,如果没有的话,就只能重新创建一个了!
new 对象你也是了解的!
http://blog.csdn.net/yohoph/article/details/8191875