【发布时间】:2011-07-14 23:32:35
【问题描述】:
我已经阅读了原始数据类型和对象引用按值传递的所有地方?
我曾尝试在 Google 中搜索为什么 java 不支持按引用传递,但 我只得到 java 不支持按引用传递 并且 我找不到任何原因。
为什么不能通过引用传递原始数据类型?
编辑:大多数人都认为我的问题是主观的和有争议的。
其实不是,它有一个明确的答案,我的问题是为什么你不能创建一个抽象类的对象,而且它也不是重复的,因为大多数答案只是简单地说不。
谢谢。
【问题讨论】:
-
@duffymo 这不是重复的...OP 知道你不能,并且在问为什么你不能。我不明白为什么这应该被关闭......即使 Java 这样做的原因是主观的,说明原因是主观的将是一个有效的答案。
-
jvm 工作起来很简单,在方法调用时,它会复制堆栈中的参数。由于原语在堆栈上,它只会复制值,引用也是如此。 jvm可以通过传递堆栈偏移量而不是复制来支持这些值的引用传递,但这会使语言以及编译器、实现、反射、优化和大量其他事情变得更加复杂。________所以问题是: 引用传递值得痛苦吗?显然语言设计者认为不是。
-
@duffymo - 这个问题可能是理论上的,但肯定不是主观的,也不是我能看到的重复。
-
这显然不是主观的。此外,可以给出一个可能有用的答案,解释您实际上如何可以很容易地解决这个限制,所以它根本不是一个限制。所以关闭它的决定是很轻率的,应该重新打开它。
标签: java c++ pass-by-reference