当前位置: 首页 > 面试题库 >

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

锺离逸春
2023-03-14
问题内容

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

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

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

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

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

问题答案:

您不能直接访问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


 类似资料:
  • 本文向大家介绍我们可以从Java中的静态方法访问实例变量吗?,包括了我们可以从Java中的静态方法访问实例变量吗?的使用技巧和注意事项,需要的朋友参考一下 我们无法直接访问静态方法内的实例变量,因为静态方法只能访问静态变量或静态方法。 顾名思义,实例变量与类的实例相关。因此,直接从不依赖于任何特定实例的静态方法访问它是没有意义的。因此,要访问实例变量,我们必须具有要从中访问实例变量的类的实例。 例

  • 谷歌(遗憾地)计划破坏存储权限,使应用程序无法使用标准文件API(和文件路径)访问文件系统。许多人反对它,因为它改变了应用程序访问存储的方式,在很多方面,它是一个受限的API。 因此,如果我们希望处理各种存储卷并访问其中的所有文件,我们将需要在未来的Android版本上完全使用SAF(存储访问框架)(在Android Q上,我们至少可以暂时使用一个标志来使用正常的存储权限)。 例如,假设您想创建一

  • 只见有人写道: 子类中受保护成员的可见性可以修改。 然后我就迷惑了,我知道父类中方法的访问修饰符可以在它的实现中修改,如下所示: 但是我不知道如何在子类中将一个成员变量的受保护访问修饰符修改为public。代码实现是什么样的?

  • 我正在使用JPA QueryDSL从DB查询数据,这很管用。现在,我有一个用JPA QueryDSL编写的复杂的select查询,我需要使用它创建一个临时表,如下所示(POSTGRES)。 有没有人可以帮助使用JPA QueryDSL定义上面的查询。有可能用JPA查询处理DDL吗? 您对我的问题提出的建议将不胜感激。

  • 我有一个桌面应用程序,可以在REST界面上使用GMAIL API阅读邮件。我想使用服务帐户,这样我们就可以下载邮件使用域设置和用户交互是空的。我成功地创建了Gmail服务实例,但当我尝试访问任何Gmail API方法,比如获取邮件列表或任何其他方法时,我会遇到一个异常,说: 谷歌。API。啊。OAuth2。响应。TokenResponseException:错误:“访问被拒绝”,描述:“请求的客户

  • 本文向大家介绍我们可以在MySQL查询中使用SELECT NULL语句吗?,包括了我们可以在MySQL查询中使用SELECT NULL语句吗?的使用技巧和注意事项,需要的朋友参考一下 是的,我们可以在MySQL查询中使用SELECT NULL语句。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是实现SELECT NULL