为什么java不支持通过引用? 是否有任何具体的原因呢?*为什么Java纯粹通过价值?
回答
为什么java不支持通过引用?
Java is indeed pass-by-value。但是,您仍然可以将对象引用传递给方法。即使引用是按值传递的,但总体效果几乎与传引用无法区分。
不支持的是对基本类型的引用。
+1为'总体'效应陈述。我无法形成一个连贯的句子,可以告诉我想告诉我什么 – 2013-03-18 07:16:02
“整体效果与传引用无法区分”当然不是。这是非常明显的 - 通过引用传递,您可以随时在函数内部分配一个引用参数,并且它会执行相同的操作,就像您为传入的变量赋值(即用'=')调用范围。这是你无法用像Java这样的按价值传递语言来做的事情。 – newacct 2013-03-18 18:55:31
@newacct:这取决于语言。举例来说,C++具有传递引用的功能,但没有您所概述的语义(通过“分配给引用”,我假设您将引用重新绑定到不同的对象)。 – NPE 2013-03-18 20:02:26
有什么特别的理由吗?
这是语言设计。
它支持以不同的意义引用传递引用通过值传递。
看到这个:http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.1
其实在Java中的一切是按值传递。
当你说对象通过引用传递时,这意味着对象引用是通过值传递的。
这基本上是由Java设计人员做出的一个设计决策,它使语言变得简单,代码更易于调试。
- 1. 通过纯粹的原生Android应用
- 2. java不是纯粹的OOP
- 3. 纯粹的分割
- 4. 纯粹的Arduino C
- 5. 通过价值
- 6. 通过价值
- 7. 通过价值
- 8. 在django中实现纯粹时事通讯的最佳方式是什么?
- 9. Java是通过价值的权利?
- 10. 什么是一些最纯粹的面向对象的语言?
- 11. 为什么ulimit通过java Runtime.exec()
- 12. 纯粹数字permalinks in wordpress
- 13. 纯粹的css对话
- 14. 纯粹测试STM功能
- 15. 为什么我的(纯粹的)GWT对话框不能正确裁剪?
- 16. 为什么@objc枚举与纯粹的Swift枚举有不同的描述?
- 17. 通过URL传递价值并通过$ _GET获得价值
- 18. Rails中,为了通过嵌套价值
- 19. 什么是价值?
- 20. 什么值通过react-chartjs
- 21. WPF动画 - 为什么不能通过“具有否定的价值?
- 22. 为什么我不能在java中获得双重价值?
- 23. std.regex.regex()不纯。为什么?
- 24. Javascript Gotcha:为什么价值不增加?
- 25. 为什么国家需要价值?
- 26. 为什么价值不提交?
- 27. 为什么我不能打印价值?
- 28. 为什么Velocity不会取代价值?
- 29. 为什么singletone类的价值是零?
- 30. LINQ C#为什么价值变动
你能举一个例子/文档说这个吗? – 2013-03-18 07:11:31
@SnakesandCoffee - 说什么? Java使用纯粹通过价值?尝试链接的问题开始。或者Java教程。或任何一半体面的Java教科书。或者如果这对你来说还不够明确,试试JLS。 – 2013-03-19 00:36:19
@StephenC我的评论发布之前很久没有添加链接 – 2013-03-19 01:09:41