值传递和引用传递

来源:互联网 发布:适合美工的笔记本 编辑:程序博客网 时间:2024/06/08 06:51

值传递:

指的是在方法调用时,传递的参数是按值的拷贝传递,传递后就互不相关了。

public class test2 {private void test1(int a){//做点事情a=0;System.out.println(a);}public static void main(String[] args) {test2 t = new test2();int a = 3;t.test1(a);//这里传递的参数a就是按值传递System.out.println(a);}}

输出:

0

3

可见,a传递过去后,不会影响前面的值。

引用传递:


指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。传递的是值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。

public class test2 { private void test1(A a){//a = new A();  如果这里实例化一个新的A覆盖掉a,就不会相互影响 a.age = 20; System.out.println("test1方法中的age="+a.age); } public static void main(String[] args) { test2 t = new test2(); A a = new A(); a.age = 10; t.test1(a); System.out.println("main方法中的age="+a.age); } } class A{ public int age = 0; }

test1方法中的age=20

main方法中的age=20
原创粉丝点击