java - String intern() 方法有什么作用?
问题描述
我阅读了很多关于 String.intern() 方法的答案,但并没有完全得到我的答案。实习生方法是一种本机方法,文档说:
返回字符串对象的规范表示。
现在 String 是 char[] 数组的包装器。当我们使用字面量定义时,引用直接指向底层的 char[]。
当我们使用 -new String() 创建时,它会在堆上创建一个对象,并且该对象的一部分保存着“值”,它在内部引用了底层的 char[] 数组。
我的问题是:
- char[] 是否被缓存为 HashSet?因此,在池化时,没有重复的 char[] 吗?
- 调用 intern() 方法时
String s = new String().intern()
,本地引用现在直接指向/引用 char[] 并且创建的 String 类型对象没有实时引用?(我的假设基于 -"hello" == "hello".intern() = true
)
问题是 - intern() 方法如何在内部工作。
解决方案
推荐阅读
- hadoop - Hive 跨产品问题
- prestashop - 在 Prestashop 1.6 中更新 ps_product 表字段 show_price 和 available_for_order
- c# - 将 LINQ 'GroupBy' 运算符键排序为自定义顺序
- php - 为什么我在 foreach 循环中得到 NULL?
- python - 在文本中查找正则表达式匹配的函数一次打印一个匹配...我需要一个列表
- html - 如何在 Safari 中隐藏 optgroup?
- macos - 在 MacOS 上构建 D 项目时出错(找不到对象._d_arraysetlengthTImpl)
- python - 在文本文件的行尾写入字符串
- python - 如何更改响应结构
- qt - 更改分辨率时,Qml 应用程序不合适