2 hb960429 hb960429 于 2017.09.12 14:49 提问

关于string创建多少个对象问题

该方程式创建了多少个对象实例,不明白怎么计算,有朋友说是创建了7个

8个回答

hb960429
hb960429   2017.09.12 15:03

方程式是:string s = "a"+"b"+"c"+"d"

bingyan_wxl
bingyan_wxl   2017.09.12 15:06

在java里面是创建了1个

u014034934
u014034934   2017.09.12 15:12

和string s = "abcd"一样

qq_38014429
qq_38014429   2017.09.12 15:14

创建了一个
String s = "a" + "b" + "c" + "d" + "e";
赋值符号右边的"a"、"b"、"c"、"d"、"e"都是常量
对于常量,编译时就直接存储它们的字面值而不是它们的引用
在编译时就直接讲它们连接的结果提取出来变成了"abcde"
该语句在class文件中就相当于String s = "abcde"
然后当JVM执行到这一句的时候, 就在String pool里找
如果没有这个字符串,就会产生一个

QMNHHH
QMNHHH   2017.09.12 15:21

String s = "a" + "b" + "c" + "d" ;
执行这一句时会生成一个字符串为:“abcd”

liu1823612484
liu1823612484   2017.09.12 15:46

创建了一个,一个对象S;

quanwairen1
quanwairen1   2017.09.12 16:52

一个;
个人理解为它相当于字符串合并成一个字符串相当于(String s1= "abc");
如下例子看到它hashCode码值一样的
public class T {
static String s= "a"+"b"+"c";
static String s1= "abc";

public static void main(String[] args){
System.out.println(s.hashCode());
System.out.println(s1.hashCode());
}

}

m0_37872098
m0_37872098   2017.10.02 22:41

String s = "a"+"b"+"c"+"d" ;是java下的用法。
在执行过程中:**会有2个**,一个是s ,另一个是 "abcd" 。因为a b c d 均在常量池,会优化为"abcd"。

在C/C++中,语法错误。

Csdn user default icon
上传中...
上传图片
插入图片