第1个回答 2019-03-06
若这些字符串都是第一次出现,且java编译器,虚拟机都没有做优化的话,那么应该是3个对象,分别是a,b,ab, 原因是String 对象是final修饰的也就是说,只能新建,不能修改,所以肯定得有4个对象。不过高版本的java编译器,或虚拟机都是有做优化的,那时候就不一定了。在不优化的情况下,肯定是StringBuilder更优,原因就是创建对象的开销是很大的。StringBuilder.append操作是不需要创建新对象的,ab就不存在了,随着+号的增加,性能差异会越来越明显。本回答被网友采纳