Java 值传递与引用传递

值传递

package com.vince.zhichuandi;


public class Zhichuandi {
// 值传递:在方法被调用的时候,传递的参数是按值的备份传递的,也就是说,传递之后形参和实参就互不相干了
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int x = 10; // 备份一个x的值为10
test(x);
System.out.println(x);
}


// 实参的值作为形参的初始值,对形参做了初始化,传递之后就互不相干了,,此时就算修改形参的值,实参的值也不会发生改变
public static void test(int x) {
System.out.println(x);
x = x * 2;
System.out.println(x);
}
}

结果

10
20
10

引用传递

package com.vince.zhichuandi;


public class Yinyongchuandi {
// 引用传递:在方法被调用的时候,传递的是值的引用,也就是对象的引用变量,那么传递前和传递后指向的是同一个内存空间
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
A a = new A();
System.out.println("a.age=" + a.age);
test(a);
// 测试实参的值,
System.out.println("调用之后" + a.age);
}


// 传递的是对象的引用变量指向的内存地址,地制的值是不会发生变化,,所以,形参和实参所指向的还是同一个内存地址,,形参改变的只是地址中的值
public static void test(A a) {
int m;
m = a.age = 20;
System.out.println(m);
}
}


class B{
public int age = 0;
}


a.age=20
20
调用之后20



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值