strings pool在jvm中的哪個位置
1 回答

當年話下
TA貢獻1890條經驗 獲得超9個贊
舉個例子:
String str0 = "abc";
String str1 = new String("abc");
當執行String str0 =”abc”;時,JVM會在棧中創建三個char型的值 ’a’ , ’b’ 和 ’c’ ,然后在堆中創建一個String對象,它的值(value)是剛才在棧中創建的三個char型值組成的數組{ ’a’ , ’b’ , ’c’ },最后這個新創建的String對象的值”abc”會被添加到字符串池中。如果我們接著執行String str1=new String(”abc”);代碼,由于”abc”已經被創建并保存于字符串池中,因此JVM只會在堆中新創建一個String對象,但是它的值(value)是共享前一行代碼執行時在字符串池中的 ” abc ” ;
- 1 回答
- 0 關注
- 680 瀏覽
添加回答
舉報
0/150
提交
取消