能解答一下java吗?基础

public class uctest {

static void change(String s)

{

s="www";

}

public static void main(String[] args){

String s="hhhh";

change(s);

System.out.println("s="+s);

}

}


慕九州6707844
浏览 904回答 1
1回答

mark_fork

你好程序输出的仍然是"hhhh";这个是java基础中经常会遇到的面试题,即java方法参数是 值传递还是 引用传递答案是:java方法参数是值传递你给的示例中实参是String s = "hhhh"形参是change(String s) 中的s方法调用的时候是将实参s的引用值 copy 至change 方法中的形参即实参s和形参s现在都指向字符串常量池的"hhhh"字符串当change方法执行完毕后形参s自动释放但实参还是执行"hhhh"的所以最终终端输出的还是"hhhh"而不是"www"。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java