程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-新人求助,各位大大進來看看啊

java-新人求助,各位大大進來看看啊

編輯:編程綜合問答
新人求助,各位大大進來看看啊

如果String str = “abc”;
String str1 = new String(“abc”);
這樣,“abc”是會被放在常量池裡的吧,那麼
new String的時候會不會從直接常量池裡找abc,而不用再創建啊??還是說可以在常量池裡找到就不用再創建了?

最佳回答:


String str = “abc”;這段代碼創建的對象str是指向常量池中“abc"的地址的。
String str1 = new String(“abc”);而這段代碼創建了一個對象,該對象的值為"abc",同時str1是指向堆中這個對象。
Java中直接的常量串,例如“abc”是會被放在常量池裡的,而對字符串的new操作則是創建字符串對象,它是創建了一個對象該對象的值是某個串”abc",
補充下Java的String的intern是你說的這個意思,如String str3=str1.intern()。會在創建完對象後並將這個對象的值放入常量池中的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved