黑马程序员技术交流社区
标题:
一个关于String的问题,思考了很久
[打印本页]
作者:
superob123
时间:
2014-6-1 10:12
标题:
一个关于String的问题,思考了很久
String a="a"+"b"+"c"+"d";
这句话一共有创建了多少个对象?
作者:
武维京
时间:
2014-6-1 10:28
就创建了一个
String s = "a" + "b" + "c" + "d" + "e";
赋值符号右边的"a"、"b"、"c"、"d"、"e"都是常量
对于常量,编译时就直接存储它们的字面值而不是它们的引用
在编译时就直接讲它们连接的结果提取出来变成了"abcde"
该语句在class文件中就相当于String s = "abcde"
然后当JVM执行到这一句的时候, 就在String pool里找
如果没有这个字符串,就会产生一个 。
作者:
多一点
时间:
2014-6-1 10:34
1个···············
作者:
七弦
时间:
2014-6-1 10:36
一个,没什么可说的
作者:
EDDY_Liang
时间:
2014-6-1 10:42
这不是字符串加起来的意思嘛。。
作者:
成小龙
时间:
2014-6-1 13:15
一个,,,,,,,,,
作者:
丁绍然
时间:
2014-6-1 14:16
1个,+是连接符,连起来是一个,要是逗号可能就不一样了
作者:
GoodBoy123
时间:
2014-6-1 15:11
个人觉得应该没有对象。。
作者:
执笔梦
时间:
2014-6-1 15:39
好像如果已经有了 “abcd”这个就不会再创建了,如果没了就创建一个吧..不清楚,
作者:
江祖贇
时间:
2014-6-2 19:43
想这个问题干嘛
作者:
唤月
时间:
2014-6-2 21:58
1个.......
作者:
ゞ导火索゛
时间:
2014-6-2 22:44
本帖最后由 ゞ导火索゛ 于 2014-6-2 23:33 编辑
"a"
"b"
"c"
"d"
"e"
"ab"
"abc"
"abcd"
"abcde"
应该是9个吧,每一个字符串在创建时都会被放入到字符串缓冲池中,
作者:
Horan
时间:
2014-6-2 23:04
string是不可变的,“+”也只是连接符号,所以应该是一个了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2