对于这个声明
String a="MAM"+"BCD"+"EFG"+"GFE";
将创建多少个对象?(我很困惑是它创建了 4 个还是 5 个或 7 个)
大多数聪明的编译器会意识到连接的字符串常量可以在编译时连接。如果您的编译器选择进行该优化,那么答案就是一个。
否则,您将拥有每个文字字符串,加上每个连接的字符串。如果没有优化,答案是 7,因为你有 4 个字符串和 3 个+
es。
如果您谈论的是 Java,那么答案是一个,在编译时,如 JLS 中所指定。
如果你不是,这个问题是无法回答的。
只会创建一个对象。在这种情况下,因为加号用于连接“字符串文字”。:)