33.Java-String分析
常量池:專門儲存常量的地方,都指的方法區中
編譯常量池:把位元組碼載入進JVM的時候,儲存的是位元組碼的相關資訊(不研究)
執行常量池:儲存常量資料(研究)
面試題1
下列程式碼分別建立了幾個String物件?
String str1 = "ABCD";
String str2 = new String("ABCD");
public class Hello{
public static void main(String[] args){
String str1 = "ABCD";
String str2 = "A"+"B"+"C"+"D";
String str3 = "AB"+"CD";
String str4 = new String("ABCD");
string str = "AB";
String str5 = temp+"CD";
String str6 = getStr()+"CD";
}
public static String getStr(){
return "AB";
}
}
String物件比較:
一:單獨使用""引號建立的字串都是直接量,編譯時期就已經確定儲存到常量池中.
二:使用new String("")建立的物件會儲存到堆中,是執行時期才建立.
三:使用包含直接量的字串連線符如 "AA"+"BB"建立的也是直接量,編譯時期就能確定,已經 確定能儲存到常量池中
四:使用包含String直接量(無final修飾符)的字串表示式(如 "AA"+s1)建立的物件是執行時期才建立的,儲存到堆中.
相關文章
- 後端分析/前端分析/邊緣分析後端前端
- 【漏洞分析】KaoyaSwap 安全事件分析事件
- USB 邏輯分析儀分析丟包怎麼分析(lecroy USB 邏輯分析儀)
- 故障分析 | MySQL死鎖案例分析MySql
- Unity效能分析(二)CPU/GPU分析UnityGPU
- 日誌分析-apache日誌分析Apache
- Giraph原始碼分析(六)——Edge 分析原始碼
- Java集合框架分析(五)LinkedHashMap分析Java框架HashMap
- Netty原始碼分析-- FastThreadLocal分析(十)Netty原始碼ASTthread
- 資料分析師招聘分析2.0
- EOS原始碼分析(3)案例分析原始碼
- 經營分析、資料分析、財務分析有什麼關係?
- Unity效能分析(三)記憶體分析Unity記憶體
- 從電影分析到遊戲分析遊戲
- 詞法分析的前奏:字元分析(三)詞法分析字元
- 以太坊原始碼分析(13)RPC分析原始碼RPC
- Retrofit原始碼分析三 原始碼分析原始碼
- MyCAT原始碼分析——分析環境部署原始碼
- 文法分析
- 文字分析
- ThreadLocal分析thread
- Facebook 分析
- CyclicBarrier 分析
- 今日分析
- javaBean分析JavaBean
- RACSignal分析
- SparseArray分析
- CMSampleBuffer 分析
- LinkedList分析
- ArrayList分析
- SpringAOP分析Spring
- 軟體需求與分析 業務建模分析
- 故障分析 | Redis AOF 重寫原始碼分析Redis原始碼
- 程式分析與優化 - 5 指標分析優化指標
- 程式分析與優化 - 11 多分支分析優化
- 業務分析師如何克服分析僵局? -modernanalystNaN
- 【JDK原始碼分析系列】ArrayBlockingQueue原始碼分析JDK原始碼BloC
- 【架構分析】MESA (EGL/GLES)架構分析架構