下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";
答案:5 悬赏:20 手机版
解决时间 2021-04-15 06:42
- 提问者网友:美人性情
- 2021-04-14 14:40
下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";
最佳答案
- 五星知识达人网友:煞尾
- 2021-04-14 14:52
对于如下代码:
String s1 = "a";
String s2 = s1 + "b";
String s3 = "a" + "b";
System.out.println(s2 == "ab");
System.out.println(s3 == "ab");
第一条语句打印的结果为false,第二条语句打印的结果为true,这说明javac 编译可以对
字符串常量直接相加的表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编
译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。
题目中的第一行代码被编译器在编译时优化后,相当于直接定义了一个”abcd”的字符串,
所以,上面的代码应该只创建了一个String对象。写如下两行代码,
String s = "a" + "b" + "c" + "d";
System.out.println(s == "abcd");
最终打印的结果应该为true。
String s1 = "a";
String s2 = s1 + "b";
String s3 = "a" + "b";
System.out.println(s2 == "ab");
System.out.println(s3 == "ab");
第一条语句打印的结果为false,第二条语句打印的结果为true,这说明javac 编译可以对
字符串常量直接相加的表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编
译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。
题目中的第一行代码被编译器在编译时优化后,相当于直接定义了一个”abcd”的字符串,
所以,上面的代码应该只创建了一个String对象。写如下两行代码,
String s = "a" + "b" + "c" + "d";
System.out.println(s == "abcd");
最终打印的结果应该为true。
全部回答
- 1楼网友:鱼芗
- 2021-04-14 18:35
5
- 2楼网友:廢物販賣機
- 2021-04-14 17:03
创建了一个对象s!
- 3楼网友:野慌
- 2021-04-14 16:41
一个对象,只有string型的s。后面的a、b、c、d只是赋值给s的,字符串型的s,只有这一个对象。
- 4楼网友:神的生死簿
- 2021-04-14 15:53
一个对象,就是s对象。
"a"+"b"+"c"+"d" 就是它的数据
"a"+"b"+"c"+"d" 就是它的数据
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯