JAVA学习笔记(3)方法的参数传递

本文详细介绍了Java中方法参数传递的基本原理,无论是基本数据类型还是对象引用,都遵循值传递的原则。对于基本数据类型,传递的是值的副本;而对于对象,传递的是对象引用的副本,因此在方法内部对对象属性的修改会影响到原始对象。通过内存图示例,清晰地展示了这一过程,帮助理解Java参数传递的机制。
摘要由CSDN通过智能技术生成

  JAVA里方法的参数传递的方式只有一种:值传递,即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。

  JVM的内存模型

 (1)如果传入的参数为基本数据类型时

 这段代码的执行结果如下:

用内存图来理解

 (2)如果方法的形参是对象

这段代码的执行结果如下:

可以发现a的值改变了,这与上面所说的参数本身不受影响是否矛盾呢?

答案是不矛盾的,用内存图来理解一下 

总结: 

1.如果方法传递的参数是基本数据类型,那么实参(实际的数据)向形参传递参数时,就是直接传递值,把实参的值复制给形参。

2.如果方法的形参是对象,那么实参(实际的对象)向形参传递参数的同时,也是把值给形参,这个值是实参在栈内存中的值,也就是是引用对象在堆内存中的值。

基本数据类型都是保存在栈内存中,引用对象在栈内存中保存的是引用对象的地址,那么方法的参数传递是传递值(是变量在栈内存的当中的值)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值