java中的传递效率

java中的传递效率,java,collections,memory-efficient,Java,Collections,Memory Efficient,让我看看我是否理解这一点。由于Java的“传递引用值”特性,传递数组或大型对象集合(如位图)的成本要比传递的成本低得多……因为实际上传递的是高级引用变量……我离引用值有多远?“传递引用值”“如果参考[type]的值为: Java虚拟机的引用类型被巧妙地命名为reference。类型引用的值有三种类型:类类型、接口类型和数组类型。这三种类型的值都是对动态创建的对象的引用 Java虚拟机中数据值的基本大小单位是单词——每个Java虚拟机实现的设计者选择的固定大小。字大小必须足够大,以容纳byte、

让我看看我是否理解这一点。由于Java的“传递引用值”特性,传递数组或大型对象集合(如位图)的成本要比传递的成本低得多……因为实际上传递的是高级引用变量……我离引用值有多远?

“传递引用值”“如果参考[type]的值为:

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

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


注:

  • Android Dalvik不是Java JVM。然而,为了便于讨论,传递参考值和整数值或使用相同的局部变量需要“等效堆栈空间”

  • 这不全是尺寸的问题。在可能的情况下,传递和使用
    long
    long
    更好,即使参考值实际上可能“更小”

    简单地说,
    long
    值不需要间接查找或装箱/取消装箱以及相关对象。(附加内存局部性优势的示例在.NET中更好,它支持更大的“primitive/struct”值,并且不需要装箱/取消装箱。)

  • 短语“实际传递高级引用变量”是错误的,因为Java中没有传递变量。只有值作为参数传递:对于引用类型的表达式,包括简单变量表达式,传递引用值


  • 嗯,我会说低水平的。。。但是,是的,你所做的只是传递一种模式,指的是存储对象的内存中的位置。有点不精确,但本质上是正确的。也考虑<代码>列表< /代码>;Java总是按值传递。但是,对象类型的值是其“引用地址”。另请参见任何对象类型的默认
    toString
    实现。您可以传递任何类型的Object,并且不会看到更多开销。这就是你声明的意思。你不必为每个不同的班级再问这个问题。问只是表明你不明白你说了什么。(3)没有意义。对象类型的变量是引用,它们是通过值传递的。@EJP我试图区分“引用”对象(通过值间接)的变量和作为参数传递的“引用值”的概念。措辞可能会有所不同。有什么区别?引用变量包含一个引用值。你需要区分什么?int变量包含一个int值。这一类比是准确的。你只是在制造混乱。我将删除(3)。@EJP我已经更改了一些措辞,希望我的意图更加明确。