问题1: String s = "a" + "b" + "c" + "d" + "e"; 问此语句共创建了几个对象,问题2:但是如果改成 String s = a+b+c+d+e; 呢 又是几个了。
时间: 2024-01-10 11:03:30 浏览: 21
问题1:在Java中,创建了1个对象。在编译时,"a"、"b"、"c"、"d"和"e"都被当作字符串常量处理,会被放入字符串常量池中。然后,在运行时,这些字符串常量会被拼接成一个新的String对象,因此总共创建1个对象。
问题2:在Java中,会创建多个对象。首先,"a"、"b"、"c"、"d"和"e"都会被当作字符串常量处理,会被放入字符串常量池中。然后,在运行时,会创建4个String对象。首先,a和b会被拼接成一个新的String对象,然后再将其与c拼接成另一个新的String对象,以此类推,直到拼接完成。因此,总共会创建多个对象。
相关问题
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个对象。