前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >String.intern() 方法有什么作用?

String.intern() 方法有什么作用?

作者头像
水货程序员
发布2018-11-13 16:35:59
4.1K0
发布2018-11-13 16:35:59
举报
文章被收录于专栏:javathingsjavathings

String.intern() 方法有什么作用?

98 total views, 3 views today

String.intern() 方法可以使得所有含相同内容的字符串都共享同一个内存对象。

JVM 中,存在一个字符串常量池,字符串的值都存放在这个池中。当调用 intern 方法时,如果字符串常量池中已经存在该字符串,那么返回池中的字符串;否则将此字符串添加到字符串常量池中,并返回字符串的引用。

JDK1.6 和 JDK1.7 在 intern() 方法的实现上,有相同,也有不同。

相同点: 先去查看字符串常量池是否有该字符串,如果有,则返回字符串常量池中的引用。 不同点: 如果是 JDK1.7,当字符串常量池中找不到对应的字符串时,不会将字符串拷贝到字符串常量池,而只是生成一个对该字符串的引用在字符串常量池。而 JDK1.6 会拷贝字符串至字符串常量池。

JDK1.6 中,常量池在方法区。JDK1.7 中,常量池移到堆区了。

注意:字符串常量池中的 String 对象,也是可以被 GC 回收的,只要它不再被引用了。

String.intern 方法可以减少内存中相同字符串的数量,节省一些内存空间。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • String.intern() 方法有什么作用?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档