为什么Java仅按值传递?

Dan*_*rex 9 java pass-by-value

所以这是另一个有价值的downvote问题.

我知道Java IS是按价值传递的,这意味着什么以及它是如何工作的.所以这不是另一个你可以解释什么是价值传递.我更为好奇的是,为什么Java不包括通过引用传递?我想这会有用吗?知道如何巩固我头脑中的推理也是有帮助的....

我讨厌'这是因为'场景肯定相当于'因为我这么说'.那么有没有人能够回答为什么Java只包含值传递?

rvi*_*007 2

David Flanagan 所著的 O'Reilly 的 Java in a Nutshell 说得最好:“Java '通过引用'操作对象,但它'通过值'将对象引用传递给方法。”这是 Java 的设计决策。当您传递对象时,您仍然在操作相同的底层对象,因为它们都引用相同的内存位置。所以我不确定您正在考虑哪些特定场景是现有 Java 机制无法做到的。

  • 虽然这是唯一事实上没有错误的答案,但它并没有真正解决OP的问题“为什么”。 (4认同)