JVM是否会内联对象的实例变量和方法?

假设我有一个非常紧凑的内循环,每次迭代访问并改变一个簿记对象,该对象存储有关算法的一些简单数据,并具有操作它的简单逻辑

簿记对象是私有的和最终的,它的所有方法都是私有的,最终的和@inline。 这是一个示例(在Scala语法中):

object Frobnicate { private class DataRemaining(val start: Int, val end: Int) { @inline private def nextChunk = .... } def frobnicate { // ... val bookkeeper = new DataRemaining(0, 1000) while( bookeeper.hasData ) { val data = bookkeeper.nextChunk // ...... } } } 

JVM是否会将整个DataRemaining对象内联到Frobnicate.frobnicate ? 也就是说,它会将startend视为局部变量并将nextChunk代码直接内联到frobnicate吗?

在Java中,它可以在您拥有的情境中内联字段和方法。 它并没有完全消除Object,而是接近它。 我认为Scala的工作方式类似。