它们是否占用了相同的内存量?数组是一个抽象类,因此它会招致任何对象头成本吗?Scala中的其他Java原语数组也是如此吗?
PS:我在某个地方读到Scala将它们作为原始数组存储在JVM中,但现在我感到困惑。
发布于 2014-11-17 07:21:14
Scala的ArrayT准确地表示为T[],没有开销。它们产生相同的字节码。您还可以使用ArrayOps提供的操作,但这是一个隐式转换,不影响纯ArrayT表示。
发布于 2014-11-17 07:20:31
如果您不关心几个字节的潜在差异(Scala Array与Java array报头),它们在内存使用方面大致相同,因为Scala Int表示为Java原语int。
http://www.scala-lang.org/api/current/index.html#scala.Int
https://stackoverflow.com/questions/26967047
复制相似问题