🍅 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中:
将这个字符串常量池尝试放入字符串常量池。
如果常量池中有,并不会放入。返回已有的常量池中的对象的地址;
如果没有,会把对象的引用地址复制一份,放入常量池,并返回常量池中的引用地址;
相关文章
暂无评论...