String a = new String("abc" + "def");创建了几个对象
时间: 2023-05-26 20:03:53 浏览: 107
这段代码会报错,因为缺少加号(+)来连接两个字符串,应该写成:
String a = new String("abc" + "def");
这样会创建一个只包含字符串"abcdef"的String对象。
相关问题
String s1="abc"+"def";String s2=new String(s1);s1与s2地址为何不同
这是因为在创建字符串s1时,Java编译器会将"abc"和"def"合并成一个新的字符串"abcdef"。而在创建字符串s2时,使用new关键字创建了一个新的字符串对象,并将s1中所引用的字符串对象的值复制到s2中。因此,s1和s2虽然包含相同的字符串内容,但它们引用的是不同的字符串对象,因此它们的地址不同。
执行如下两行代码之后,则内存中存在几个字符串对象?( ) String str="abc"; str+="def";
执行这两行代码之后,在内存中存在三个字符串对象: "abc", "def" 和 "abcdef"。
初始时,字符串池中只有 "abc" 一个字符串对象,执行 `str += "def"` 时,会创建一个新的字符串对象 "def",然后将原字符串对象 "abc" 和新字符串对象 "def" 拼接起来,形成一个新的字符串对象 "abcdef"。因此,最终内存中有三个字符串对象。
阅读全文