gpt4 book ai didi

java - 我们可以访问或查询 Java 字符串实习生(常量)池吗?

转载 作者:太空狗 更新时间:2023-10-29 22:41:16 25 4
gpt4 key购买 nike

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

假设我有一些执行此操作的基本代码:

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

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

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

最佳答案

您不能直接访问 String intern pool .

根据 Javadocs String intern pool是:

A pool of strings, initially empty, is maintained privately by the class String.

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

java.lang.String.intern() 返回一个驻留字符串,即在全局字符串池中有一个条目的字符串。如果该字符串不在全局字符串池中,则将添加它。

以编程方式您可以采用这种方法:

  1. 声明Set<String> StringConstantPool = new HashSet<String>();
  2. 调用String.intern()
  3. 添加返回 String此池中的值 StringConstantPool

关于java - 我们可以访问或查询 Java 字符串实习生(常量)池吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19049812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com