java中,String类的值声明后不能修改吗?
展开全部
你误解了教程的意思,教程是比较了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";
}
比如:
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";
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |