为什么 引用作为函数的参数传入,但是函数结束后原来的引用却没有改变
来源:7-19 中序遍历下一个结点_代码
John_Chentao
2017-12-14
public TreeNode getFirst(TreeNode node) {
if(node==null) {
return node;
}
while(node.getLeft()!=null) {
node = node.getLeft();
}
return node;
}但是另一个例子中引用的内容改变了
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer("Hello ");
System.out.println("Before change, sb = " + sb);
changeData(sb);
System.out.println("After changeData(n), sb = " + sb);
}
public static void changeData(StringBuffer strBuf) {
strBuf.append("World!");
}
}写回答
1回答
-
第一个tree中,node本来所引用(指向)的对象是哪个没有变,而且里面内容也没有变,只是node在函数里被引用(指向)了别的对象。第二个stringbuffer里,sb本来所引用(指向)的对象是哪个也没有变,但是它的内容变了。
你可能需要再参考下值传递与引用传递方面的基础知识。012017-12-14
相似问题