黑马程序员技术交流社区

标题: 常量池小问题 [打印本页]

作者: Synaric    时间: 2015-10-4 07:53
标题: 常量池小问题
String s = "ab" + "cd";
"abcd"如果在常量池找不到则加入常量池,那么编译期"ab"和"cd"会不会加入常量池?
作者: 穆帆    时间: 2015-10-4 07:58
会的,会加入常量池
作者: xuxu5112    时间: 2015-10-4 09:27
不会
String s = "ab" + "cd";
因为"ab","cd"都是常量
JVM在计算常量的时候只记录其字面值而不是地址值.
所以相当于String s = "abcd";
只创建了一个对象
作者: Synaric    时间: 2015-10-4 10:07
xuxu5112 发表于 2015-10-4 09:27
不会
String s = "ab" + "cd";
因为"ab","cd"都是常量

我也倾向于不会,但找不到好的验证方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2