java中的string类中内容一旦被初始化就不能改变为什么还有replace方法呢?

2024-11-27 08:27:28
推荐回答(2个)
回答1:

朋友,你好,对于你的问题,我觉得下面的回答您会满意明了:
string类对象中的内容一旦被初始化就不能再改变
没错的,这是string类的特性,一定要记住。
下面举个例子:
string
s
=
"hello";
//这时候会在内存中开辟一块空间存储“hello”,并且s的引用指向它;
s
=
“world”;
//看这句,初学者一般觉得这样的话s的值就变了啊,跟string的特性相违背了啊,其实并不然,s只是对象的引用,真正的对象存在了内存中,执行这句语句的时候,会在内存中重新开辟一块内存,用来存储“world”,并将原来的s引用指向“world”。但是原来的内存中的“hello”并没有改变。也就是说string类对象中的内容一旦被初始化就不能再改变。
希望您会看明白。

回答2:

replace方法并不能改变字符串本身的,只是replace方法能返回一个处理后的字符串而已,例如:
String
s="hello";
System.out.println(s.replace("h","H"));
System.out.println(s);
输出结果:
Hello
hello