为了账号安全,请及时绑定邮箱和手机立即绑定

关于常量池内存分配

关于常量池内存分配

郎朗坤 2018-12-07 13:33:09
如下代码(《深入理解Java虚拟机》周志明 p57),还是不理解为什么两个值一个true一个false(jdk 1.7实验) public static void main(String[] args) { String str1 = new StringBuilder("你好").append("世界").toString(); System.out.println(str1.intern() == str1); String str2 = new StringBuilder("ja").append("va").toString(); System.out.println(str2.intern() == str2); }
查看完整描述

2 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

不了解intern()是什么。我理解只要有字符串池,那么只要相同的字符串 引用都应该相等才有意议。

所以这种比较应该全部为true才对。

应该都为false才对,不了解java.

C#的到是很清楚,只要是直接字 "Hello"这种都在字符串常量池中,而其它出来的都是新的空间。

查看完整回答
反对 回复 2018-12-16
  • 2 回答
  • 0 关注
  • 609 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号