当前位置: 技术问答>java相关
java中方法调用参数的值不能改变吗?
来源: 互联网 发布时间:2015-10-17
本文导语: java中方法参数不都是引用吗,可是我却不能改变参数如: String s1="aaa" change(s1) public boolean change(String sss) { sss="changed"; return true; } 调用完扣s1还是aaa,而不是="changed";,why? | s1和sss都是句柄...
java中方法参数不都是引用吗,可是我却不能改变参数如:
String s1="aaa"
change(s1)
public boolean change(String sss)
{
sss="changed";
return true;
}
调用完扣s1还是aaa,而不是="changed";,why?
String s1="aaa"
change(s1)
public boolean change(String sss)
{
sss="changed";
return true;
}
调用完扣s1还是aaa,而不是="changed";,why?
|
s1和sss都是句柄,在把s1作为实参传给change时,只是令s1和sss都指向同一个对象,而sss="changed";只是改变了sss句柄指向的对象,s1并未发生任何变化。这里的s1、sss和c++里的引用并不一样,c++中的引用被初始化指向一个对象后就不能再指向其他对象,而java中的句柄却可以。讲多了,你只要记住,虽然s1和sss可能指向同一个对象,但如果其中一个指向了其他对象(重新赋值),它们就没了任何联系。