黑马程序员技术交流社区
标题:
一个String的问题,求解答~
[打印本页]
作者:
726477179
时间:
2016-8-13 22:19
标题:
一个String的问题,求解答~
程序的运行结果是( )
String s1 = “abc”;
String s2 = new String(“abc”);
System.out.println(s1==s2);
String s3 = “你好吗”;
String s4 =”你”;
String s5 =”好吗”;
System.out.println(s3==(s4+s5))
a) true true
b) false true
c) true flase
d) false false
我选的是B,但是百度出来的答案是D,不是常量优化机制吗?求解答!
作者:
life写实
时间:
2016-8-13 22:24
s4+s5是变量相加。无法在编译期确定的
作者:
敲敲乐z
时间:
2016-8-14 11:20
s4+s5是变量,虽然被赋值,但依然是变量相加!
作者:
726477179
时间:
2016-8-14 13:55
life写实 发表于 2016-8-13 22:24
s4+s5是变量相加。无法在编译期确定的
原来这样的~
作者:
warsong
时间:
2016-8-14 21:17
方法区中常量池两个地址:一个是"你",一个是"好吗"。通过StringBuffer类append方法和toString方法把两个字符串连接在一起,在堆内存新创建一个内存空间,和常量池中另外一个地址:"你好吗"不同,酱紫。
作者:
Hacker_
时间:
2016-8-14 21:44
这个很简单 选择d 因为本身地址就不同 比较当然是d
作者:
欧文略
时间:
2016-8-14 22:03
==号判断的是地址值,s4+s5是两个变量在相加,常量优化机制.前提是常量
作者:
冬冬宋
时间:
2016-8-14 23:57
66666666666666666
作者:
chensc
时间:
2016-8-15 20:11
学习学习!
作者:
double_x
时间:
2016-8-15 21:35
变量 你自己再看一下
作者:
heimaljx
时间:
2016-8-16 00:21
那些都是变量,基础视频有讲过这个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2