有没有办法在我们自己的程序中访问String常量池的内容?
说我有一些基本的代码可以做到这一点:
String str1 = "foo"; String str2 = "bar";
现在,我们的字符串常量池中有2个字符串在浮动。有什么方法可以访问池并打印出上述值或获取池中当前包含的当前元素总数?
即
StringConstantPool pool = new StringConstantPool(); System.out.println(pool.getSize()); // etc
您不能直接访问String intern pool。
String intern pool
根据Javadocs String intern pool是:
最初为空的字符串池由String类 私有 维护。
但是,可以使用String的intern()方法将String对象添加到此池中。
intern()
java.lang.String.intern() 返回一个内部字符串,即在全局字符串池中具有一个条目的字符串。如果字符串尚未在全局字符串池中,则将其添加。
java.lang.String.intern()
*您可以通过 *编程 方式遵循以下方法:
Set<String> StringConstantPool = new HashSet<String>();
String.intern()
String
StringConstantPool