为什么 引用作为函数的参数传入,但是函数结束后原来的引用却没有改变
来源: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
相似问题