小编典典

我们可以访问或查询Java String实习生(常量)池吗?

java

有没有办法在我们自己的程序中访问String常量池的内容?

说我有一些基本的代码可以做到这一点:

String str1 = "foo";
String str2 = "bar";

现在,我们的字符串常量池中有2个字符串在浮动。有什么方法可以访问池并打印出上述值或获取池中当前包含的当前元素总数?

StringConstantPool pool = new StringConstantPool();
System.out.println(pool.getSize()); // etc

阅读 225

收藏
2020-09-16

共1个答案

小编典典

您不能直接访问String intern pool

根据Javadocs
String intern pool是:

最初为空的字符串池由String类 私有 维护。

但是,可以使用String的intern()方法将String对象添加到此池中。

java.lang.String.intern()
返回一个内部字符串,即在全局字符串池中具有一个条目的字符串。如果字符串尚未在全局字符串池中,则将其添加。

*您可以通过 *编程 方式遵循以下方法:

  1. 宣布 Set<String> StringConstantPool = new HashSet<String>();
  2. 呼叫 String.intern()
  3. 将返回String值添加到该池中StringConstantPool
2020-09-16