java传值和穿引用_Java的传值(by value)和传引用(by reference)的讨论

有一种说法

Java都是传值

因为传引用,也是把引用的值--地址,赋给另外一个引用

但我觉得:

如果说

传引用只是把引用的值--即对象的地址传入

从而说是传值

进一步说Java都是传值的话

那我觉得C里面传指针也是传值啊

指针你也可以认为是一种数据类型,它的值也是地址

传指针,也是把它的值--即另一个数据对象的地址传入

只不过指针可以用指针操作符

而引用不可以,而且Java限制你对地址直接操作而已

所以我的观点,不要太计较传值还是传引用

记住Java基本类型和对象引用作为参数传递,其结果是有区别的,而且知道区别是什么,就够了

如果你觉得按照传值、传引用,可以很好的来理解这种区别

那你就这么做,没有什么不可以的

基本类型传递和对象引用传递:

基本类型传递,你不能改变原变量的值

引用传递,你也不能改变引用本身的值--地址,即你不能使传入的引用指向一个新的对象,但你可以改变传入引用所指向的对象的内容

其实C传指针又何尝不是这样

我觉得传引用,就是指你可以改变它所指向的对象的内容

所以,从这个意义上来说,也可以认为Java有传引用(by ref)一说,不是吗?

何必要如此较真呢?

搞清楚运作机理就行了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值