关于String.intern()

最近遇到好几道有关String.intern()的题目,正巧在《深入理解Java虚拟机》一书中也见到了有关这个Native方法的讲解,因此总结一下。
首先先说一下String.intern()方法的作用(JDK1.6中相符合):String.intern()表示如果常量池(位于虚拟机中的方法区)中有这个字符串,则返回代表这个字符串的String对象。否则,就先将这个String对象“包含的字符串”添加到常量池,然后返回这个String对象(原来的String对象而非常量池中的,这个返回的String对象是在堆中的)。
String.intern()在JDK1.6和JDK1.7中实现方式还不一样.
JDK1.6中:String.intern()会把第一次遇见的字符串实例复制到常量池,而且返回的也是这个常量池中的字符串的引用。
JDK1.7中:只是在常量池中存储首次出现的字符串的实例的引用,然后返回的也是这个引用,这就导致了新的特性,跟上面所说的String.intern()的方法的作用描述不再相符合了,这就是新的JDK所带来的变化,也是String.intern()方法的现在的作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值