有没有任何方法或技术可以知道给定String s的字符串池中是否已存在?Java String池创建的方式和时间?它包含的初始成员是什么?
我的回答是:没有通用的解决方案。你能做的是:
\n\nboolean wasAlreadyInterned = str.intern() == str;\nRun Code Online (Sandbox Code Playgroud)\n\n但这有一个副作用,现在它肯定被拘留了。
\n\nJavaDocString#intern说,类 String 私有地维护一个字符串池,该池最初是空的。
如果您查看该类的实现,String您会看到
public native String intern();\nRun Code Online (Sandbox Code Playgroud)\n\nJava语言规范,第 3.10.5 章,字符串文字说:
\n\n\n\n字符串文字 - 或者更一般地,常量表达式 (\xc2\xa715.28) 的值的字符串 - 被“保留”,以便使用 方法共享唯一的实例
\nString.intern。
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |