java基础中值传递与地址传递

本文探讨了Java中数据的存储方式,包括栈和堆的区别,以及值传递和地址传递的概念。值传递在函数调用时复制实际参数,不改变原值,而地址传递直接传递参数地址,允许修改原值。示例代码展示了值传递的影响。
摘要由CSDN通过智能技术生成

首先在说明之前,我们需要了解在计算机中数据的存储方式
如图在运行软件时,计算机的内存条会开辟相应的内存区来进行数据的存储,而且开辟了俩块内存区,一个是栈,一个是堆,二者的数据的特点是不同的,栈中存储的数据则是数据的名及其赋予的数值(基本数据类型)或者其存储地址(引用类型);而堆则开辟一个内存空间用以存储数据(引用类型)的具体赋值。数组是引用类型,在栈开辟一个 内存空间,同时在堆里也开辟一个空间,保存了数组中的数据,而栈则保存堆中数据保存的地址值(是一个十六进制的地址)。因为在输出变量时,未加索引位置和中括号即[i],输出的是栈的值,因此输出的是地址值,而如int等是基本数据类型,直接在栈中存储其相应所赋予的值,因此输出时,输出的是相应的赋值。栈和堆俩者数据的输出先后是不同的,栈是先进后出,而堆则为先进先出。
首先:值传递是指在调用函数时实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际函数。
引用传递是指调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
在值传递和地址传递中二者是有区别的。
(1)值传递
public static void main(String[] args) {//main ——>Alt + /
int score = 16;
System.out.println(score);//输出为16
test(score);//值传递,转到下个函数(方法)执行
System.out.println

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值