日期:2014-05-20  浏览次数:20614 次

String s = "a" + "b" + "c" 到底创建了几个对象?
有人说1个,http://blog.csdn.net/java2000_net/article/details/3681385,
有人说5个,到底是几个。给个官方解释吧
java String

------解决方案--------------------
不是说的很清楚了吗?1个,"a" "b" "c"是String pool里定义好的,直接使用。对象只有一个s。其实讨论这个一点意义都没有,现在的jvm都会给你优化的,这种对程序的性能影响会越来越小
------解决方案--------------------
就是1个啊,是编译器把你的代码进行了优化,所以是一个
------解决方案--------------------
引用:
不是说的很清楚了吗?1个,"a" "b" "c"是String pool里定义好的,直接使用。对象只有一个s。其实讨论这个一点意义都没有,现在的jvm都会给你优化的,这种对程序的性能影响会越来越小

编译的时候会变成"abc",于是只有一个对象
------解决方案--------------------
引用:
有人说1个,http://blog.csdn.net/java2000_net/article/details/3681385,
有人说5个,到底是几个。给个官方解释吧

这问题在论坛上出现至少10次了。。。
至于几个,你去看看咱们版主大人的博客吧。。
http://blog.csdn.net/java2000_net/article/details/3681385