Java到底有没有引用传递?

最近在忙面试,在某次技术电话面试中,面试官让我说说“Java中值传递和引用传递的区别?”我当时觉得这个题目比较基础,应该是没有问题的,我也按照平时所学所理解的告诉面试官。事后我认真回想了一下,觉得这个问题一定不简单,于是在网上翻了一通,各有各的说法。在我看来,其实他们说的都是一个东西,只是从不同角度切入罢了。

以下是我一直以来的观点。
1、“在Java里面参数传递都是按值传递”这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递
2、在Java里面只有基本类型和String,其它的都是按引用传递
摘自:http://blog.csdn.net/zzp_403184692/article/details/8184751(有改)

直到看到知乎这个回答,才发现这种观点不重要,这种争论也显得没有意义了。

首先,不要纠结于 Pass By Value 和 Pass By Reference 的字面上的意义,否则很容易陷入所谓的“一切传引用其实本质上是传值”这种并不能解决问题无意义论战中。
更何况,要想知道Java到底是传值还是传引用,起码你要先知道传值和传引用的准确含义吧?可是如果你已经知道了这两个名字的准确含义,那么你自己就能判断Java到底是传值还是传引用。
这就好像用大学的名词来解释高中的题目,对于初学者根本没有任何意义。

如果还没搞懂传值和传引用的准确含义请看下面的链接
知乎回答:https://www.zhihu.com/question/31203609/answer/50992895

所以我这里并不想为“Java到底有没有引用传递?”这个问题下定论,你说有就有,你说没有就没有!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值