java中,String s = "a" + "b" + "c" + "d" + "e"; 问此语句共创建了几个对象
10个回答
展开全部
就创建了一个
String s = "a" + "b" + "c" + "d" + "e";
赋值符号右边的"a"、"b"、"c"、"d"、"e"都是常量
对于常量,编译时就直接存储它们的字面值而不是它们的引用
在编译时就直接讲它们连接的结果提取出来变成了"abcde"
该语句在class文件中就相当于String s = "abcde"
然后当JVM执行到这一句的时候, 就在String pool里找
如果没有这个字符串,就会产生一个
String s = "a" + "b" + "c" + "d" + "e";
赋值符号右边的"a"、"b"、"c"、"d"、"e"都是常量
对于常量,编译时就直接存储它们的字面值而不是它们的引用
在编译时就直接讲它们连接的结果提取出来变成了"abcde"
该语句在class文件中就相当于String s = "abcde"
然后当JVM执行到这一句的时候, 就在String pool里找
如果没有这个字符串,就会产生一个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是一个对象,"a" ,"b" , "c" , "d" , "e"虽然都是对象,但是是常量,常量就意味着很可能在编译时期编译器已经把他们相加起来了,在运行时就做了一个String s = "abcde"的操作,也就说运行时期是没有"a" ,"b" , "c" , "d" , "e"的!
就像int a = 3+2;
这样的句子还会留到运行期去做么!如果真是这样,只能说这个编译器太垃圾了。。。。
就像int a = 3+2;
这样的句子还会留到运行期去做么!如果真是这样,只能说这个编译器太垃圾了。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
10个 ,2楼前面说的都对 ,但他忘了 S 也是个对象
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用第8感超人的回答:
一共9个对象 java中String 每个引号都是一个对象 这就是5个了
"a"+"b"=ab一个
"ab"+"c"=abc
"abc"+"d"=abcd
"abcd"+"e"=abcde
这又是4个
一共有9个
虽然s只是指向最后一个 但是实际上产生了9个对象
一共9个对象 java中String 每个引号都是一个对象 这就是5个了
"a"+"b"=ab一个
"ab"+"c"=abc
"abc"+"d"=abcd
"abcd"+"e"=abcde
这又是4个
一共有9个
虽然s只是指向最后一个 但是实际上产生了9个对象
展开全部
实际上就1个,上面的“a”“b”...都是字面量意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询