比方说,我有一个类A,它创建一个相当大的对象B的实例.是否将B作为参数传递给C类中的方法效率低下?
也就是说,它只是传递一个引用还是它也会移动对象的内存?
谢谢.
Jon*_*eet 62
它只是传递参考.重要的是要理解Java 中任何表达式的值永远不是对象.这只是曾经引用或原始值.
这不仅与参数传递相关 - 理解返回类型,数组,简单赋值等很重要.
Joa*_*uer 14
Java只能将两种值传递给方法:
int,char,double,...)或你无法"按价值"传递整个对象.
这意味着你不必担心你的物体"有多大",你"绕过".
只要您的调用是本地的(相同的JVM)对象大小无关紧要,但是当您的应用程序使用远程调用(如RMI/Web Service)(跨JVM)时,大型对象能够在很大程度上减慢您的应用程序因为巨大的将被编组/解组的数据量以及每个远程调用所涉及的网络延迟.