java中,String类的值声明后不能修改吗?

2024-11-27 08:42:35
推荐回答(1个)
回答1:

你误解了教程的意思,教程是比较了铅高Object对象和String在作为方法参数传递后能否在方法慧激清内部被修改
比如:
public static void main(String args[]) {

String tmp = "a";
foo(tmp);
System.out.println(tmp) ; //这里输出的是a,而不是在foo里重新设定的b

}

private void foo(String str) {
str = "b";
}

==========================================================
如果传了一个对象
public class StringTest {
public String m_str;

public void toString() {
return m_str;
}
}

public static void main(String args[]) {

StringTest tmp = new StringTest();
tmp.m_str = "a";
foo(tmp);
System.out.println(tmp.toString()) ; //这里输出的是b,因为这个对象的前前m_str值在foo方法中被改变了

}

private void foo(StringTest str) {
str.m_str = "b";
}