java中的参数传递和变量作用域

一, java中函数的参数传递始终是传递的参数的副本,即传递来一个新的局部变量.

f(Person local)
main()
{
	Person man;
	f(man);
}
	在上面的代码中,对local的操作有两种
  1. 如果给f函数中的local重新赋值,则local作为一个局部变量重新指向另外一个对象的内存.而main中的man仍然指向原来的对象所对应的内存.这种情况下local并没有改变main中的man.可以认为他们分道扬镳了.
  2. 而如果在f中修改的是local的某个字段的值,或者是调用了一个local自带的方法,这个方法能改变local的某个字段的值.在这种情况下,由于此时local和man都指向同一个内存对象,所以对local的某些字段的改变会在main中的man中体现出来.这时候仍然认为local和man还是用同一个锅吃饭的.

二,函数中的局部变量 : 函数中的局部变量在函数返回时被销毁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值