Code Bye

Java中string创建对象的相关问题

各位高手问一下    Java中 string 是= “a”+”b”+”c”+”d”;   一共创建了几个对象,为什么?
解决方案

2

一个,等于
string a=”abcd”;

2

经测试。一个也没创建。就加载了个常量abcd

3

引用:

为什么?怎么测试的?

3

http://blog.csdn.net/java2000_net/article/details/3681385

1

一个

1

一个。

1

引用:
Quote: 引用:

一个,等于
string a=”abcd”;

为什么有人说5个,有人说4个?

string a= “a”+”b”+”c”+”d”;
string b = “abcd”;
System.out.print(a==b);

1

引用:
Quote: 引用:
Quote: 引用:

一个,等于
string a=”abcd”;

为什么有人说5个,有人说4个?

string a= “a”+”b”+”c”+”d”;
string b = “abcd”;
System.out.print(a==b);

这并不能说明创建了一个对象,只能说明java的string池中假如有相同的字符串,会直接把此字符串的指针指向新创建的对象

1

引用:
Quote: 引用:
Quote: 引用:
Quote: 引用:

一个,等于
string a=”abcd”;

为什么有人说5个,有人说4个?

string a= “a”+”b”+”c”+”d”;
string b = “abcd”;
System.out.print(a==b);

这并不能说明创建了一个对象,只能说明java的string池中假如有相同的字符串,会直接把此字符串的指针指向新创建的对象

创建一个的原因是”a”+”b”+”c”+”d”在没有赋值给string a之前,他们都是常量,不会在string池中创建对象的

5

首先你要明白,String创建的对象,都放在一个专门的地方,而String本身是不可变的,也就如同常量性质一样,
当你想要创建一个String对象并赋值时,它会先去专门的哪个放置String对象内存的地方找,看有没有这个值,假如有,指针直接引用,假如没有,哪就创建.
你的这问题,本人的回答有两种情况:
1.假如内存存放String的地方有这个值,就一个也不会创建,直接引用
2.假如内存存放String的地方没有这个值,就只创建一个对象(“abcd”).
希望你能有用.

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Java中string创建对象的相关问题