2015-08-14 73 views

回答

6

+=运营商,像+操作,将当其中一个操作数是String而另一个不是时,执行string conversion

+=的代码将使用字符串转换为ichar转换为String进行连结到c,一个String

根据JLS, Section 5.2=的代码不会使用字符串转换,因为它不在可分配上下文的可接受转换列表中。

4

String由于是不可变的,该编译器实际上转换到+=

c = c + i; 

其编译成

c = new StringBuilder().append(c).append(i).toString(); 

StringBuilder具有append重载所有基本数据类型。