我不明白 java 中的这种按值传递和按引用传递的概念



可能重复:
通过引用传递和通过值传递之间有什么区别
Java是通过引用传递的吗?

我不理解java中这种按值传递和按引用传递的概念。有人能用蹩脚的话解释我吗。。。在阅读了许多文章之后,我仍然不理解它。

Java只使用传递值。就是这样。

http://stackoverflow.com/search?q=[java]+pass+by+value

我可以尝试一个外行对一般原理的解释,但我不太使用Java,所以可能会有一些问题。

好的,所以当你把一个变量传递到一个函数/子例程/方法中时,你有这两个选择。

  1. 传递值:您的变量将被复制,两个变量将独立存在,一个在函数范围内,另一个在调用范围内。一旦函数完成,前者将不存在,因此后一个变量将不会更改。这也被称为"传递副本"。

  2. 通过引用传递:不复制变量。所传递的只是对原始变量(在调用范围中)位置的引用。因此,如果被调用的函数修改了变量,即使在函数返回到调用范围后,它也会持续存在。

通过引用通常更有效,尤其是对于大变量。然而,函数设计原则指出,应该避免使用引用值来返回函数的结果。

如果需要澄清,请告诉我!

最新更新