扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
通常,函数存储在ROM中。当函数被调用(运行)时,它将被传输到ram中运行。当调用任何函数时,都是为了实现一定的操作函数。一般函数在运算后需要有运算数据(即实际参数的数据)和运算结果(即返回值)。函数运行时,为什么不直接操作参数,而是把参数的数据传给参数,然后再操作参数呢?
按需开发可以根据自己的需求进行定制,做网站、成都做网站构思过程中功能建设理应排到主要部位公司做网站、成都做网站的运用实际效果公司网站制作网站建立与制做的实际意义这是为了“低耦合”。编程思想中有句俗语“低耦合,高内聚”。也就是说,职能之间的关系应该尽可能简单明了,没有歧义。这是为了提高程序的可读性和可维护性。在函数运行时,它应用于一个RAM区域,其中还包括形式参数的空间,并将实际参数的数据提供给形式参数。
函数只操作形式参数,不操作实际参数。这样,函数和实际参数之间的关系就被清除了。当函数死亡(从RAM中释放)时,实际参数之间的关系就不再需要了。调用函数时应用的ram可以直接清除,简单高效。同时,返回值与此类似。
形式参数是函数的入口,返回值是函数的出口。该函数只使用自己的内部空间运行,与其他数据无关,大大提高了“低耦合”。这就是形式参数和实际参数的含义。
什么是形参和实参?参数传递的方式有哪些?通过比较数学中的函数,例如,f(x)=2x10F(x)是返回值,x是形式参数,当您将值5赋给x时,实际参数是5,当您将值赋给10时,实际参数是10。因此,一般来说,实际参数是调用函数时对形式参数的赋值,实质上参数传递的方式只有一种,即值传递。地址转移和引用转移都是价值转移的概念转换。例如,当调用voidCalc(int*PTR)时,它看起来是地址传输,但对于PTR,它的值被初始化为实际参数,因此它是值传输。理解它最基本的方法是,从记忆的角度看,给变量赋值无非是在某个地方的内存中写一个值,所以需要注意目标内存是否发生了变化。例如,当您将一个值写入指针参数所指向的内存时,您将写入一个实际参数所指向的内存,这就是地址传输的本质。
为什么说java里面只有值传递?在这个问题上,不同的人有不同的理解。对于Java初学者来说,他们可能认为Java中的参数传递分为值传递和引用传递。至于为什么,教科书上说了。对于程序员的某些工作年限,他们可能会认为,如果传递的参数类型是普通类型,则传递的是值;如果参数是对象,则传递的是引用。另一些人认为,只有Java中的值传递才是主要问题的主题。
对于Java编程语言,前两种理解是错误的。Java中只使用值传递。对我来说,一开始,我也理解了价值传递和参照传递的理论,但随着自己代码的积累,我逐渐发现事实并非如此。那么为什么只有价值传递呢?
首先,让我们了解什么是值传递,什么是引用传递?
值传输意味着调用函数时,实际参数值被复制并传递给被调用函数。修改被调用函数中的参数值不会影响原始参数值。
引用传递意味着调用函数时,实际参数的地址直接传递给被调用函数。修改被调用函数中的参数值将影响原始参数值。
如果传递的参数类型是普通基本类型,则必须复制实际参数值并将其传递给形式参数。但是,当参数类型是对象时,它也是复制的参数值,并将其传递给形式参数。只复制对象的引用地址,即内存中分配的存储地址,而不是直接传递的引用地址。
此时,有些人可能会问为什么一个对象会被传递给另一个方法。在此方法中修改对象的属性值时,原始调用方法中对象的属性值将更改。这不就是参考传递吗?
事实上,这是一个非常令人困惑的问题。如果你仔细看看上面的说法,事实并非如此。将一个对象传递给另一个方法会传递什么?传递对象引用的地址。对象引用的地址是否已在其他方法中修改?原始对象引用是否受影响?不
!因此,Java中没有引用传递,只有值传递。不要犯任何错误!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流