【Java】值传递和引用传递

值传递

值传递指的是在方法调用时,传递的参数是按值的备份进行传递的,也就是说在传递后就互不相关了。
----------------------------------------------

值传递举例:

public class Demo {
	public static void main(String[] args) {
		int x = 10;
		test(x);
		System.out.println("在main()方法中,x = " + x);
	}
	public static void test(int x) {
		System.out.println("在test()方法内部修饰值以前:x = " + x);
		x = x * 2;
		System.out.println("在test()方法内部修改值以后:x = " + x);
	}
}

运行结果:
在test()方法内部修饰值以前:x = 10test()方法内部修改值以后:x = 20main()方法中,x = 10

引用传递

引用传递是指传递的是值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。
----------------------------------------------

引用传递举例:

public class Demo {
	public static void main(String[] args) {
		A a = new A();
		System.out.println("在main()方法的内部调用test()方法前:a.age = " + a.age);
		test(a);
		System.out.println("在main()方法的内部调用test()方法后:a.age = " + a.age);
	}
	private static void test(A a) {
		a.age = 20;
		System.out.println("在main()方法的内部:a.age = " + a.age);
	}
}
class A {
	public int age = 0;
}

运行结果:
在main()方法的内部调用test()方法前:a.age = 0main()方法的内部:a.age = 20main()方法的内部调用test()方法后:a.age = 20
发布了47 篇原创文章 · 获赞 4 · 访问量 1114

猜你喜欢

转载自blog.csdn.net/Hide111/article/details/105349644
今日推荐