让我看看我是否理解这一点。由于Java的“引用价值传递”性质,传递数组或大量对象(比如位图)的成本要低得多......因为你实际上是通过一个高级别的参考变量...我离我有多远?
答案 0 :(得分:1)
"传递由-the- 值 -of-的基准"总结了一下,参考[类型] 的值是an internal opaque value:
Java虚拟机的引用类型巧妙地命名为reference。类型引用的值有三种形式:类类型,接口类型和数组类型。所有这三种类型的值都是对动态创建的对象的引用。
...
Java虚拟机中数据值的基本大小单位是 - 每个Java虚拟机实现的设计者选择的固定大小。字大小必须足够大,以容纳byte,short,int,char,float,returnAddress或reference类型的值。
注意:
Android-Dalvik 不是 Java-JVM。但是,为了便于讨论,需要等同的堆栈空间"传递引用值和整数值或使用相同的局部变量。
这不是关于尺寸的全部。在可能的情况下,传递和使用long
优于Long
,即使参考值实际上可能更小"。
通常,long
值不需要间接查找或装箱/拆箱和关联对象。 (在.NET中,附加的内存局部性优势的例子更好,它支持更大的"原始/结构"值,并且不需要包装/取消装箱。)
短语"实际传递高级参考变量"是错误的,因为变量不是用Java传递的。只有值作为参数传递:对于引用类型表达式,包括简单变量表达式,传递引用值。