String不可变。String 是引用类型数据,其值是无法改变,如果想要像C语言那样修改字符串那么只能通过StringBuilder类来操作字符串。StringBuilder是可变的。
String str = "Test string";
StringBuilder strBuilder = new StringBuilder(str);
strBuilder.setCharAt(1, 'X');
str=Builder.toString();
public class Demo {
public static void main(String[] args) {
String str="Hello";
fun(str);
System.out.println(str);
}
public static void fun(String temp) {
temp="World";
}
}
看似能改变String的值其实是指向改变
class Message {
private String info = "Hello";
public Message(String info) {
this.info = info;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
public class Demo {
public static void main(String[] args) {
Message msg = new Message("你好");
fun(msg);
System.out.println(msg.getInfo());
}
public static void fun(Message temp) {
temp.setInfo("World");
}
}