传递java的效率

时间:2014-04-13 23:15:50

标签: java collections memory-efficient

让我看看我是否理解这一点。由于Java的“引用价值传递”性质,传递数组或大量对象(比如位图)的成本要低得多......因为你实际上是通过一个高级别的参考变量...我离我有多远?

1 个答案:

答案 0 :(得分:1)

"传递由-the- -of-的基准"总结了一下,参考[类型] 的值是an internal opaque value

  

Java虚拟机的引用类型巧妙地命名为reference。类型引用的有三种形式:类类型,接口类型和数组类型。所有这三种类型的都是对动态创建的对象的引用。

     

...

     

Java虚拟机中数据值的基本大小单位是 - 每个Java虚拟机实现的设计者选择的固定大小。字大小必须足够大,以容纳byte,short,int,char,float,returnAddress或reference类型的值。


注意:

  1. Android-Dalvik 不是 Java-JVM。但是,为了便于讨论,需要等同的堆栈空间"传递引用和整数或使用相同的局部变量。

  2. 这不是关于尺寸的全部。在可能的情况下,传递和使用long优于Long,即使参考值实际上可能更小"。

    通常,long值不需要间接查找或装箱/拆箱和关联对象。 (在.NET中,附加的内存局部性优势的例子更好,它支持更大的"原始/结构"值,并且不需要包装/取消装箱。)

  3. 短语"实际传递高级参考变量"是错误的,因为变量不是用Java传递的。只有值作为参数传递:对于引用类型表达式,包括简单变量表达式,传递引用