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
? 也就是说,它会将start
和end
视为局部变量并将nextChunk代码直接内联到frobnicate
吗?
在Java中,它可以在您拥有的情境中内联字段和方法。 它并没有完全消除Object,而是接近它。 我认为Scala的工作方式类似。
- 发送Object类型的对象而不是String – Polymorphism
- 如何通过Java套接字以二进制forms发送数据?
- UTC日期解析Java中的不一致性
- iText 5.0.0 RTF和HTML在哪里?
- 如何ajax jsf 2 outputLink
- 使用Selenium Webdrivers方法“browser.helperApps.neverAsk.saveToDisk”如何在点击链接时自动下载文件
- Java中的时间间隔
- 如何在Jersey客户端的DELETE请求中发送封装数据?
- ossoprovider.endpoint.TokenEndpoint:处理错误:InvalidGrantException,错误的凭据