Java的字符串String类的问题

在Java中,
string str="Hello";

String str=new String("Hello");的区别是什么?

String str="with";

string str="with";的区别是什么?
谢谢了!

2个回答

1.String str="hello";

这种方法创建的字符串,如果内存已经为“hello“字符串分配了内存,那么str就指向“hello”内存对象的地址

2.String str=new String("hello");

这种方法创建的字符串,不管内存有没有为“hello”字符串分配内存,都会在内存中重新分配一个内存区域存放“hello”,然后用str指向它,相当于内存中有两个“hello”只是存放的地址不一样。

A_B_C_zzy
A_B_C_zzy 谢谢
6 个月之前 回复

首先不知道你写的string是个什么情况,我想应该是String吧,没见过string这个对象。
你可以认为字符串Hello本身是一个常量,占有一块内存,赋值给str之后,str指向Hello内存地址。所以String str1 = "Hello";和String str2= "Hello";内存地址相同。
new String("Hello");是新创建了一个对象,并且把Hello赋给新对象,因此内存地址与str内存地址不同。

A_B_C_zzy
A_B_C_zzy 谢谢
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐