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); }}
1 回答
已采纳
mark_fork
TA贡献11条经验 获得超10个赞
你好程序输出的仍然是"hhhh";
这个是java基础中经常会遇到的面试题,
即java方法参数是 值传递还是 引用传递
答案是:
java方法参数是值传递你给的示例中实参是String s = "hhhh"形参是change(String s) 中的s方法调用的时候是将实参s的引用值 copy 至change 方法中的形参即实参s和形参s现在都指向字符串常量池的"hhhh"字符串当change方法执行完毕后形参s自动释放但实参还是执行"hhhh"的所以最终终端输出的还是"hhhh"而不是"www"。
添加回答
举报
0/150
提交
取消