String 对于此语句字符串a=";“妈妈”+&引用;BCD“+&引用;EFG“+&引用;“GFE”;;将创建多少个对象?(我不知道它是4还是5还是7)

String 对于此语句字符串a=";“妈妈”+&引用;BCD“+&引用;EFG“+&引用;“GFE”;;将创建多少个对象?(我不知道它是4还是5还是7),string,String,为了这个声明 String a="MAM"+"BCD"+"EFG"+"GFE"; 将创建多少个对象?(我很困惑它是4、5还是7创建的)大多数智能编译器都会意识到串联的字符串常量可以在编译时串联。如果您的编译器选择进行优化,那么答案是一个 否则,您将拥有每个文本字符串,每个串联加上一个。如果不进行优化,答案是7,因为您有4个字符串和3个+es。大多数智能编译器都会意识到,可以在编译时将串联的字符串常量串联起来。如果您的编译器选择进行优化,那么答案是一个 否则,您将拥有每个文本字符串,每个串联加上

为了这个声明

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

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

大多数智能编译器都会意识到串联的字符串常量可以在编译时串联。如果您的编译器选择进行优化,那么答案是一个


否则,您将拥有每个文本字符串,每个串联加上一个。如果不进行优化,答案是7,因为您有4个字符串和3个
+
es。

大多数智能编译器都会意识到,可以在编译时将串联的字符串常量串联起来。如果您的编译器选择进行优化,那么答案是一个


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

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


如果您不是,这个问题就无法回答。

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


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

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

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

好吧,这可能不重要,但什么语言?好吧,这可能不重要,但什么语言?许多编译器将优化一系列调用StringBuilder.Append的
+
e。在这种情况下,它将是6:4字符串、1个StringBuilder和1个结果字符串。如果您说的是Java,编译器需要在编译时连接字符串:它在JLS中指定。@EJP:Java没有指定,因此,我尝试提供一个通用的答案。许多编译器将优化一系列调用StringBuilder.Append或类似调用的
+
e。在这种情况下,它将是6:4字符串、1个StringBuilder和1个结果字符串。如果您说的是Java,编译器需要在编译时连接字符串:它在JLS中指定。@EJP:Java没有指定,所以我尝试提供一个通用答案。不,这是因为加号用于连接字符串文字。不,这是因为加号用于连接字符串文字。