66问答网
所有问题
java小问题。。中String a=“a”+"b"+"c"+"d".是创建了几个对象 。 (请说明一下原理)
如题所述
举报该问题
推荐答案 2011-05-27
一个
因为"a","b","c","d"都是
常量
,所以在编译期就可以确定a的值,这句话等价于:
String a= "abcd";
在编译期会首先在常量池里找有没有"abcd"这个常量,没有的话就分配一个,所以这里就创建了一个对象,并没有在堆中创建对象。
楼上的说等价于String a = new String(A);这是不准确的,因为new String()的话会在堆中分配内存空间,而这里显然没有在堆中分配空间。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/nxnxvnDUv.html
其他回答
第1个回答 2011-05-27
2个,因为右面的4个字符串在编译时是要先进行合并计算的,和成了一个新的字符串对象(假如是A) 那么该例子应该等于String a=A;及等于String a=new String(A);所以说是两个。
只要等号右边能合并的,都要在编译时进行合并再计算的。
第2个回答 2011-05-27
....
第3个回答 2011-05-27
7
第4个回答 2011-05-27
5个
"a"
"b"
"c"
"d"
a
相似回答
java中
,
String
s = "a" + "
b
" + "
c
" + "
d
" + "e"; 问此语句共
创建
了几...
答:
一共9个对象
java中String
每个引号都是一个对象 这就是5个了 "a"+"b"=ab一个 "ab"+"c"=abc "abc"+"d"=abcd "abcd"+"e"=abcde 这又是4个 一共有9个 虽然s只是指向最后一个 但是实际上产生了9个对象
JAVA
中,假如有如下一段代码,
String
a =
"
B
" + "
C
" + "
D
"; 请问这个...
答:
根据显示声明,会创建字符串a和B,C,D三个
String
对象 之后,编译器自动创建一个StringBuffer对象来拼接这三个字符 拼接完成后,编译器调用StringBuffer的toString方法,生成一个新String对象 最后把这个新对象作为值赋给a 整个过程,一共涉及到6个对象,其中5个是String对象。一共创建了4个String对象 ...
...一共
创建
了多少个对象:
String
s="
a
"+"
b
"+"
c
"+"
d
"; 给点权威的答案...
答:
回答:在JAVA里面有一个根类,是所有类有基类,也就是说所有类都派生于此类。NULL是空,就是什么也没有,一般null 对应 ASDII的0,在
JAVA中
没有指针,其实是以其它的形式代替的指针,如委托。对像和
String
等都可以为NULL ,就是说他们的根类允许他们为空值。但null与""不是一回事儿,你在使用时一定要注...
java
中 String
str = "a" + "
b
" + "
c
";这样
创建
了几个对象 , 这样跟...
答:
若这些字符串都是第一次出现,且
java
编译器,虚拟机都没有做优化的话,那么应该是5对象,分别是a,b,c,ab,abc 原因是
String
对象是final修饰的也就是说,只能新建,不能修改,所以肯定得有5个对象。不过高版本的java编译器,或虚拟机都是有做优化的,那时候就不一定了。在不优化的情况下,肯定是...
在
java中 String
str = "a"+"
b
"+"
c
"+"
d
";
答:
String
s = "a" + "b" + "c" + "d"";赋值符号右边的"a"、"b"、"c"、"d"都是常量 对于常量,编译时就直接存储它们的字面值而不是它们的引用 在编译时就直接讲它们连接的结果提取出来变成了"abcd"该语句在class文件中就相当于String s = "abcd"然后当JVM执行到这一句的时候, 就在...
下面这条语句一共
创建
了多少个对象:
String
s="
a
"+"
b
"+"
c
"+"
d
";
答:
对于如下代码:String s1 = "a"
;String
s2 = s1 + "b";String s3 = "a" + "b";System.out.println(s2 == "ab");System.out.println(s3 == "ab");第一条语句打印的结果为false,第二条语句打印的结果为true,这说明
javac
编译可以对 字符串常量直接相加的表达式进行优化,不必要等到...
大家正在搜
相关问题
JAVA 中,假如有如下一段代码,String a = "B...
java中,String s = "a" + "b" + "...
String a="a"; String b="b"; a=...
java 中 String str = "a" + "b" ...
String S= a+b+c+d 问S创建过程中创建了几个...
在java中 String str = "a"+"b"+"c...
String a="a"+new String"a"这个创建...
求教JAVA中,为什么String a="abcd" 和 S...