共创建了多少个对象:String s="a"+"b"+"c"+"d";
答案:2 悬赏:0
解决时间 2021-03-21 09:50
- 提问者网友:白柏唇蜜
- 2021-03-20 14:49
共创建了多少个对象:String s="a"+"b"+"c"+"d";
最佳答案
- 二级知识专家网友:承载所有颓废
- 2021-03-20 15:30
第一条语句打印的结果为false,第二条语句打印的结果为true,这说明javac编译可以对字符串常量直接相加的表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。题目中的第一行代码被编译器在编译时优化后,相当于直接定义了一个”abcd”的字符串,所以,上面的代码应该只创建了一个String对象。
写如下两行代码,String s = a + b + c + d;
System.out.println(s == abcd);最终打印的结果应该为true。
写如下两行代码,String s = a + b + c + d;
System.out.println(s == abcd);最终打印的结果应该为true。
全部回答
- 1楼网友:走,耍流氓去
- 2021-03-20 16:23
对于如下代码:
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。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |