java string 创建对象_Java中string创建对象的相关问题

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

解决方案

2

一个,等于

string a=”abcd”;

2

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

3

引用:

为什么?怎么测试的?

f6681f2d1fac9961ce0ad52d7801d8d4.png

3

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

1

f4edad62055eb50b7f77ecfbf972f38f.gif一个

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创建对象的相关问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值