为什么java只有值传递?java值传递引用传递

KLQ 2020-07-07 10:35:35 java常见问答 3070

也许你有听说过这个java只有值传递,那么这样说的原因是什么呢?什么是值传递?什么又是引用传递?下面一起来了解一下吧。

对于这个问题,不一样的人会存在着不同的理解,对初始java的人来说,可能会简单的认为,java当中的参数就是分成了值传递和引用传递,至于原因,那么就是书本上是这样说的,对于有了一些工作经验的程序员来讲的话,可能会认为,假如传递的参数类型是普通类型的话,那么就是值传递,假如传递的参数类型是对象的话,那么就是引用传递,除此之外,还有一些人认为,java当中只有值传递,就是题主问题中的主题。

其实,对于java编程来讲的话,前面的两种理解是错误的,java当中只有值传递。

那么java当中为什么只有值传递呢?

这里的话我们要先来对值传递以及引用传递的概念进行一下了解。

1、什么是值传递

值传递是指在调用函数的时候,把实际参数值复制一份传递到被调用函数当中,在被调函数当中修改参数值不会影响原实参值。

2、什么是引用传递

引用传递指的是在调用函数的时候,把实际参数的地址直接传递到被调用的函数当中,在被调函数当中,修改参数值会影响原实参值。

假如,传递的参数类型是普通基本类型,那么一定是复制一份实参值传递给形参的,可是,参数类型是对象时,也是复制的一份参数值传递给形参,但是,复制的是对象引用的地址,也就是说,在内存中分配的存储地址,不是直接传递的引用地址。

那么,这个时候,有人会说为什么把一个对象传到另一个方法当中,在这个方法当中修改了这个对象的属性值的时候,原调用方法当中的对象属性值也跟着发生了改变,它不就是引用传递了吗?

其实,这个是比较的迷惑的,但是,你仔细的去看上面所讲述的内容的话,也许你会发现,并不是这样。

把一个对象传到另一个方法当中传递的是究竟是什么呢?

传递的是对象引用的地址,这个对象引用的地址在另一个方法当中有被修改吗?

实际上原对象引用有受影响吗?

没有!

关于java只有值传递的原因你都了解了吗?对于java你还有什么问题无法解决吗?可以继续通过奇Q工具网的常见问题栏目来找到答案哦!希望能够对你的java学习之路有所帮助。

推荐阅读:

java编程题某个公司采用公用电话传递数据

ajax传递数组怎么传?ajax数组传递

ajax参数该怎么传递?ajax参数传递