他们会占用相同数量的内存吗?数组是一个抽象类,所以它会导致任何对象标题成本?对于Scala中的其他Java基元数组是否相同?
PS:我在某处读过Scala将它们存储为JVM中的原始数组,但现在很困惑。
答案 0 :(得分:7)
Scala的Array [T]完全表示为Java的T [],没有开销。它们生成相同的字节码。您还具有ArrayOps提供的操作,但它是隐式转换,不会影响纯Array [T]表示。
答案 1 :(得分:0)
如果您不关心几个字节(Scala Array
vs Java array
标头)的潜在差异,它们在内存使用方面大致相同,因为Scala Int
是表示为Java原语int
: