JAVA的题

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:24:23
public class Test {
public static void changeStr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
}
------------------------
为什么答案是1234呢 详细说一下吧 !!!

public class Test { //Test类
public static void changeStr(String str)//static方法
{
str="welcome";
}
public static void main(String[] args) {
String str="1234";
//调用Static方法 并传参数str赋值1234
changeStr(str);
System.out.println(str); //输出str
}
}
你的这个程序虽然简单,可是很复杂。

public static void changeStr(String str){
str="welcome";
}
是声明了一个String变量,在调用的时候main把str="1234"的引用传给changeStr,把changeStr里的形参初始话为"1234",然后把它变为="welcome";

而main里的str仍然是引用"1234"

我没有试,但是我感觉“1234”是错的,是“welcome”才对。

也许我说错了。但是我真的不知道了哎

今天试了下果然是1234。原因可能是因为String 是拷贝构造,是值传递。

欢迎广大java爱好者加入群一起讨论:30745246