我们可以将基本类型变量和引用类型变量(类、数组、接口。似C/C++的指针,它以特殊的方式指向对象实体(具体的值))传给方法。基本类型变量是传值传递,引用类型变量是传引用传递。
在传基本类型时,JVM(java虚拟机)将会把传递进方法的变量复制给一个新的局部变量(方法中的变量),如果在方法中修改了这个变量的值,那么这个变化不会改变这个实际变量的值。
在传递引用变量时,那方法中的局部引用变量就指向和传入的引用变量同一个对象。如果改变方法中引用的对象,实际外面的引用对象也会改变。下面举个实际例子
class Point{
public int x;
public int y;
}
public class Test{
public static void add(int x){
x++;
}
public static void reset(Point point){
point.x=0;
point.y=0;
}
public static void main(String[] args){
int a=8;
add(a);
System.out.println(a); //结果为a=8,add(a)=9
Point p=new Point();
p.x=100;
p.y=200;
reset(p);
System.out.println(p.x); //结果为0
}
}