首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

System.out.println("123" == "12" + "3");为何结果是true

2013-03-10 
System.out.println(123 12 + 3)为什么结果是true如果你觉得简单,就当放松一下吧[解决办法]首先

System.out.println("123" == "12" + "3");为什么结果是true
如果你觉得简单,就当放松一下吧
[解决办法]
首先,在常量池两面创建了123,后面的12+3的结果也是常量,这两个的字面量相等,他们在常量池里面是一个对象
[解决办法]
编译期优化

1 最终编译出来的代码,是System.out.println("123" == "123"); 没有单独的"12"和"3"。凡是编译期能够100%确定的string加号拼接,都会直接编译为拼接结果,不保留拼接过程。
2 如1F提到的常量池优化,编译器将相同的常量字符串池化了。

热点排行