值传递和引用传递

1. 基本数据类型和引用数据类型的存储

Java是在堆栈中存放数据的。

1.1 存储基本数据类型

当存储基本数据类型时,如:int a=3,会先在栈内存中查找3是否存在,若不存在,则在栈内存中开辟两处空间分别存放值 3 和他的引用 a,若存在,则在栈内存中开辟空间存放 a 并引用已存在在栈内存中的值 3。

1.2 存储引用数据类型

当存储引用数据类型时,会先在堆内存中开辟空间存放引用数据的属性和方法,这个空间会有一个地址值,接着会在栈内存中开辟空间存放引用数据的变量及这个地址值。

2. 值传递和引用传递

2.1 值传递

int a=3;
int b=a;

以上代码会使a对3的引用传递给b,如果a的值改变,就在栈内存中查找并引用改变后的值,而b的值与其引用都不变。

2.2 引用传递

Integer i=new Integer(3);
Integer j=i;

以上代码会把i引用的地址值传递给b,如果i的值改变,实际上改变的是堆内存中的属性或方法,地址值并没有改变,j引用的还是这个地址值中的内容,地址值中的内容改变了,所以j中的值也改变了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值