黑马程序员技术交流社区
标题:
关于string对象创建的问题
[打印本页]
作者:
刘海芳
时间:
2013-5-31 22:11
标题:
关于string对象创建的问题
本帖最后由 刘海芳 于 2013-6-1 08:12 编辑
问题:
String s="a"+"b"+"c"+"d";
复制代码
这条语句一共创建了多少个对象?为什么?,这个问题纠结了我好久,请各位大大详细的解释下?
作者:
赵利斌
时间:
2013-5-31 22:31
创建了一个对象吧,加号只是个连接符,"a"+"b"+"c"+"d"合起来就相当于abcd
作者:
刘海芳
时间:
2013-5-31 22:42
赵利斌 发表于 2013-5-31 22:31
创建了一个对象吧,加号只是个连接符,"a"+"b"+"c"+"d"合起来就相当于abcd
我也是这样认为的,可网上好人多不是,我就纠结了...
作者:
msileandroid
时间:
2013-5-31 22:43
就创建了一个
String s = "a" + "b" + "c" + "d" ;
赋值符号右边的"a"、"b"、"c"、"d"都是常量
对于常量,编译时就直接存储它们的字面值而不是它们的引用
在编译时就直接讲它们连接的结果提取出来变成了"abcd"
该语句在class文件中就相当于String s = "abcd"
然后当JVM执行到这一句的时候, 就在String pool里找
如果没有这个字符串,就会产生一个
作者:
廖志强
时间:
2013-5-31 22:55
String s="a"+"b"+"c"+"d";
其实应该是这样的,每一个字符串都是一个对象,其实是String s1 = "a";而这里可以相加其实,是因为重写了toString方法,加的不是地址值
作者:
youngster
时间:
2013-5-31 22:57
public class test{
public static void main(String[] args){
String s="a"+"b";
System.out.println(s);
}
}
复制代码
是创建了一个对象,
自定义的一个String 型的S对象,当然只有一个对象指向,
后边相当于是在向这个对象里添加内容,
不管添加了什么,只要类型正确都是属于这个对象里的。
上面的打印结果是ab。+在String类型应用时是个连接符。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2