String s="a"+"b"+"c"+"d" 创建了几个对象
时间: 2023-10-01 14:05:13 浏览: 73
在 Java 中,字符串是不可变的,这意味着每次修改字符串时都会创建新的字符串对象。因此,这行代码创建了五个字符串对象: "a", "b", "c", "d", 和 "abcd"。
具体来说,首先创建了 "a" 和 "b" 两个字符串对象,然后将它们连接起来得到一个新的字符串 "ab",接着又将 "c" 字符串连接到 "ab" 后面得到一个新的字符串 "abc",最后将 "d" 字符串连接到 "abc" 后面得到最终的字符串 "abcd"。因此,总共创建了五个字符串对象。
相关问题
String s = a+b+c+d+e,共创建了几个对象?
这个问题涉及到 Java 中的字符串拼接操作。在 Java 中,字符串是不可变的,每次字符串拼接都会创建一个新的字符串对象。因此,这段代码中会创建4个字符串对象,分别是a、b、c、d和e。然后,这些字符串会被拼接起来,又会创建3个新的字符串对象,分别是a+b、c+d、和s = (a+b)+(c+d)+e。因此,共创建了7个字符串对象。
java String str="abc" 创建了几个对象 ;java String s = a+b+c+d+e 创建了几个对象
第一个问题:在Java中,创建了2个对象。一个是字符串常量池中的"abc",另一个是在堆中的String对象,它引用了字符串常量池中的"abc"。
第二个问题:在Java中,创建了5个对象。在编译时,"a"、"b"、"c"、"d"和"e"都被当作字符串常量处理,会被放入字符串常量池中。然后,在运行时,会创建4个String对象。首先,"a"和"b"会被拼接成一个新的String对象,然后再将其与"c"拼接成另一个新的String对象,以此类推,直到拼接完成。因此,总共创建5个对象。