博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
intern()方法的使用
阅读量:5125 次
发布时间:2019-06-13

本文共 745 字,大约阅读时间需要 2 分钟。

intern()

intern方法的作用是:如果字符串常量池中已经包含一个字符串等于此String对象的字符串,则返回常量池中的这个String对应的对象,

否则将其添加到常量池并返回常量池中的引用。

在jdk1.7以后,就不会像之前那样把String对象复制到常量池,而仅仅复制堆中String对象的引用至常量池。

public class RuntimeConstantPool {    public static void main(String[] args) {        //放在了堆中        String tr1=new StringBuilder("常量").append("池").toString();        //将"常量池"这个字符串的引用放入常量池        String tr2=tr1.intern();        System.out.println(tr2==tr1);                String st=new StringBuffer("jav").append("a").toString();        //"java"这个字符串已经存在在常量池里        String st2=st.intern();        System.out.println(st2==st);    }}

故这段代码在1.7+版本运行为true,false,在1.6-则为 false,false。

常量池的位置

JAK1.6在方法区

JAK1.7放在堆里面
JAK1.8以后放在一个独立空间里面,叫做“元空间”

转载于:https://www.cnblogs.com/lshao/p/9689586.html

你可能感兴趣的文章
牛的障碍Cow Steeplechase
查看>>
Zookeeper选举算法原理
查看>>
3月29日AM
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
HTML元素定义 ID,Class,Style的优先级
查看>>
构造者模式
查看>>
http和https的区别
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>
找到树中指定id的所有父节点
查看>>
今天新开通了博客
查看>>
AS3优化性能笔记二
查看>>
ElasticSearch(站内搜索)
查看>>
4----COM:a Generative Model for group recommendation(组推荐的一种生成模型)
查看>>
UVA 11137 - Ingenuous Cubrency
查看>>
js阻止事件冒泡的两种方法
查看>>
Java异常抛出
查看>>
[SQL Server 系] T-SQL数据库的创建与修改
查看>>
74HC164应用
查看>>
变量声明和定义的关系
查看>>
Wpf 之Canvas介绍
查看>>