java中的引用概念与C++中的“指针引用”概念相同,其相当与C++中的指针。
引用作为函数的参数时,需要注意:
当参数是引用类型时,"传值"传递的是变量的引用,而不是变量所引用的实体.如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化,因为,两个同类型的引用型变量如果具有同样的引用,就会有相同的实体.但是,改变参数的引用不会影响其传值变量的引用.
例子说明: A a= new A("a1"); B b= new B("b1"); 这时a,b为引用,分别指向对像a1和b1; 有个函数boolean swap(A x, B y), 当把a,b传给这个函数的时候,a和b被复制,副本为x,y,也就是说现在有两个变量a和x都指向a1,b和y指向b1,而实际对象a1和b1没有被复制。 引用(a,b)被复制,但是它们引用的对象(a1和b1)没有被复制.
这个原理与C++的指针相同。如果使用a.xxx()和使用x.xxx()都是使用a1对象的方法。
需要注意:除了在函数传值的时候是"引用传递",在任何用"="向对象变量赋值的时候都是"引用传递"。