我是靠谱客的博主 殷勤茉莉,最近开发中收集的这篇文章主要介绍浅解 java中“值传递“问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

观点:

首先提出观点:java中的参数传递都是“按值传递”,不存在“引用传递”!

什么是按值传递?什么是引用传递?

要理解这句话什么意思,我们首先要搞清楚什么是按值传递?什么是引用传递?

值传递:传参时把实参的值复制一份,再把复制的值赋给形参,在方法的操作中如果对形参做了改变,不会对实参的值造成影响。
引用传递:传参时把实参的地址赋给形参,在方法的操作中如果对形参做了改变,将影响到实参。

避免二者之间的理解误区:

  1. 错解一:传递的是数值就是值传递,传递的是地址就是引用传递。
  2. 错解二:如果传递的参数是基本类型的数据就是值传递,如果是对象就是引用传递。

总的来说就是:不能以传递的内容来区分值传递和引用传递。

如何理解java中的参数传递:

  1. 基本类型参数:对基本数据类型的参数而言,实参就表示了实际的数据值,给形参传值时传递的是实参的复制值,在方法内对形参进行修改只是对复制后的值进行修改,不会对实参的值造成影响。
  2. 引用类型参数:实参表示一个地址值,参数传递也就是传递地址的复制值,在方法中对形参的修改操作分两种情况讨论:
    情况一: 在方法中把一个新的地址赋给了形参,这种改变影响到实参表示的地址,对实参地址所指向的内容也不会有任何影响,这种情况下明显不符合引用传递的要求。
    情况二:在方法中通过传递过来的地址复制值对所指向的对象内容进行修改,这种情况下对没有对地址的具体值进行操作,所以也不会影响到实参表示的地址值,但因为复制的地址和实参地址指向相同的内容,所以会改变实参指向的内容(后者这种改变不影响我们对"值传递"的理解)。

综上所述:在java中的参数传递不管传递的内容是什么,都是"按值传递"

最后

以上就是殷勤茉莉为你收集整理的浅解 java中“值传递“问题的全部内容,希望文章能够帮你解决浅解 java中“值传递“问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部