java传参传的是引用还是值

        经常听别人说java传的都是值,但是又会经常碰到传对象进去方法,方法中修改对象,方法外的对象也会改,经过了解发现java所有对象传的都是值,不过这个值是原来堆中对象的一份引用的拷贝,当然有几种特殊情况

1.传char int 这类基础类型

        由于基础类型是直接在栈里,不存在引用情况,所以当参数是基础类型的时候会复制一份新的值传过去,这时再怎么改变都跟原来的值无关了

2.传的是integer,string这类的常用引用类型

        string integer这类对象我们的经常用的  但是这类数据是final不能修改的,而且会在堆和常量池中保存,因为传的是值引用的一份拷贝,让方法内用拷贝的引用去改变string时,由于final导致拷贝的引用会指向新的值,但是原来的引用指向的值是没变的,所以会出现这种情况,特别强调下,如果传的StringBuffer类的值也是会随着方法内的改变而改变的,因为它是可以追加操作的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值