1

对于这个声明

String a="MAM"+"BCD"+"EFG"+"GFE";

将创建多少个对象?(我很困惑是它创建了 4 个还是 5 个或 7 个)

4

3 回答 3

1

大多数聪明的编译器会意识到连接的字符串常量可以在编译时连接。如果您的编译器选择进行该优化,那么答案就是一个。

否则,您将拥有每个文字字符串,加上每个连接的字符串。如果没有优化,答案是 7,因为你有 4 个字符串和 3 个+es。

于 2013-08-07T03:21:00.457 回答
0

如果您谈论的是 Java,那么答案是一个,在编译时,如 JLS 中所指定。

如果你不是,这个问题是无法回答的。

于 2013-08-07T03:24:11.807 回答
0

只会创建一个对象。在这种情况下,因为加号用于连接“字符串文字”。:)

于 2013-08-07T03:25:50.520 回答