在java中,哪一个是用于连接的内存有效的字符串或字符串缓冲区

在java中,哪一个是用于连接的内存有效的字符串或字符串缓冲区,java,Java,在下面的场景中,我无法在String和StringBuffer之间进行选择 final MY_STRING = VAR1 + "," + VAR2 + "," +VAR3 + ","+..........VAR15; 因此,在这种情况下,每个连接操作是否会创建一个新的字符串对象,或者在所有连接操作完成后,是否会创建一个字符串对象并将其分配给MY_String 或者,使用StringBuffer执行上述操作并最终将其转换为字符串(如@Modus Tollens在注释中所述)是否具有内存效率。它

在下面的场景中,我无法在String和StringBuffer之间进行选择

final MY_STRING =  VAR1 + "," + VAR2 + "," +VAR3 + ","+..........VAR15;
因此,在这种情况下,每个连接操作是否会创建一个新的字符串对象,或者在所有连接操作完成后,是否会创建一个字符串对象并将其分配给MY_String


或者,使用StringBuffer执行上述操作并最终将其转换为字符串(如@Modus Tollens在注释中所述)是否具有内存效率。它表明+运算符可以使用StringBuffer或类似技术实现。因此,根据Java编译器的不同,+运算符可能已经在内部使用StringBuffer(或StringBuilder)。

如果其异步,则使用StringBuilder。1)使用
StringBuilder
,而不是
StringBuffer
。2) 单个表达式中的字符串串联是有效的,不用担心。3) 首先尝试用谷歌搜索你的问题。你总是忘记字符串+是由编译器处理的。是的,它工作了,但字符串是不可变的,所以每当我们放置加号时,它就会创建新的字符串对象。请参阅。它表明+运算符可以使用StringBuffer或类似技术实现。因此,根据Java编译器,+运算符可能已经在内部使用了StringBuffer(或StringBuilder)。