这里的说法对吗?String是一个特殊的包装类数据。可以用:

来源:百度知道 编辑:UC知道 时间:2024/05/25 03:54:38
String str = new String("abc");
String str = "abc";
两种的形式来创建,第一种是用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。
而第二种是先在栈中创建一个对String类的对象引用变量str,然后查找栈中有没有存放"abc",如果没有,则将"abc"存放进栈,并令str指向”abc”,如果已经有”abc” 则直接令str指向“abc”。

然后查找栈中有没有存放"abc"

不是在栈中,应该是在方法区

对的。但就算第二法str重新赋值,指针位置也肯定变

不对 ,“abc”都在堆上。