java intern方法

2年前 (2022) 程序员胖胖胖虎阿
302 0 0

🍅 Java学习路线:搬砖工逆袭Java架构师

🍅 简介:Java领域优质创作者🏆、CSDN哪吒公众号作者✌ 、Java架构师奋斗者💪

🍅 扫描主页左侧二维码,加入群聊,一起学习、一起进步 

🍅 欢迎点赞 👍 收藏 ⭐留言 📝   

String s1 = new String("1") + new String("1");//s1变量记录的地址为:new String
s1.intern();//在字符串常量池中生成"11"。如何理解:jdk6:创建了一个新的对象"11",也就有新的地址;jdk7:此时常量池中并没有创建"11",而是创建了一个指向堆空间中new String("11")的地址;
String s2 = "11";
System.out.println(s1 == s2);//jdk6:false;jdk7:true

总结String中intern()方法的使用:

jdk6中:

将这个字符串常量池尝试放入字符串常量池。

如果常量池中有,则不会方法。返回已有的常量池中对象的地址;

如果没有,会把此对象复制一份,放入串池,并返回串池中的对象地址;

jdk7中:

将这个字符串常量池尝试放入字符串常量池。

如果常量池中有,并不会放入。返回已有的常量池中的对象的地址;

如果没有,会把对象的引用地址复制一份,放入常量池,并返回常量池中的引用地址;

版权声明:程序员胖胖胖虎阿 发表于 2022年9月7日 上午7:08。
转载请注明:java intern方法 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...