Java_总结十(Java中一直认为只有值传递,是否还有引用传递——有)
说明:引用传递在Java中一直存在争议
一、值传递
public class Test { public static void change(int a){ a=20; } public static void main(String[] args) { int a=10; System.out.println(a); change(a); System.out.println(a); } }
结果:
10
10
很显然输出的 是10,10。传递的是值的一份拷贝,这份拷贝与原来的值没什么关系。
二、引用传递(对于对象(数组,类,接口)的传递似乎有点像引用传递)
所谓的引用传递就是指将堆内存空间的使用权交给多个栈内存空间
public class Test { public static void change(int []a){ a[0]=50; } public static void main(String[] args) { int []a={10,20}; System.out.println(a[0]); change(a); System.out.println(a[0]); } }
显然输出结果为10 50。实际传递的是引用的地址值。