public class Demo01 {
public static void main(String[] args) {
A a = new A();
a.temp = 20;
System.out.println(a.temp);
tell(a);
System.out.println(a.temp);
}
public static void tell(A a2){
a2.temp = 30;
}
}
显示的结果为
1
2
20
30
值传递示例:
package horace.com;
class B{
public void tell(int temp){
temp = 30;
System.out.println("tell()方法中,temp的值"+temp);
}
}
public class Demo02 {
public static void main(String[] args) {
int temp =20;
B b =new B();
b.tell(temp);
System.out.println("原有temp的值,或者说main方法中temp的值:"+temp);
}
}
显示的结果为:
1
2
tell()方法中,temp的值30
原有temp的值,或者说main方法中temp的值:20
从上面可以看出来,引用传递,是将内存空间的地址传递给其他对象,这样无论谁更改都会改变该内存空间的存放的数据;值传递是将内存空间存放的数值传递给其他对象,对原来内存空间存放的数据不会造成影响。