有沒有辦法在我們自己的程序中訪問字符串常量池的內容?我們可以訪問或查詢Java String intern(常量)池嗎?
說我有做這個工作的一些基本代碼:
String str1 = "foo";
String str2 = "bar";
現在有2串漂浮在我們的字符串常量池。有沒有辦法訪問池並打印出上述值或獲取當前包含在池中的當前總元素數?
即
StringConstantPool pool = new StringConstantPool();
System.out.println(pool.getSize()); // etc
會有很多很多的字符串在常量池中---來自JDK類和你的任何類依賴。請注意,字符串池在** class loading **時間填充,而不是在引用字符串常量的實際代碼運行時填充。 –
@MarkoTopolnik有趣的一點,我不會假設在JDK類中定義的字符串已經加載到池中。 – CODEBLACK
對於任何類,包括JDK類,一旦類本身已被加載,這是正確的。 – EJP