首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >条件JIT编译

条件JIT编译
EN

Stack Overflow用户
提问于 2010-09-10 17:15:43
回答 1查看 338关注 0票数 1

在Java中,我们可以像这样进行条件编译

代码语言:javascript
运行
复制
private static final boolean DO_CHECK = false;

...

if (DO_CHECK) {
   // code here
}

编译器将看到DO_CHECK始终为false,并删除整个if语句。然而,有时,尤其是在库代码中,我们不能使用条件编译,但我想知道,我们可以使用条件JIT编译吗?

代码语言:javascript
运行
复制
 private final boolean doCheck;

 public LibraryClass(boolean d) {
    doCheck = d;
 }


 public void oftenCalledMethod() {
     if (doCheck) {
       ...
     }
 }

如果我们使用doCheck = false来构造LibraryClass,那么JIT编译器(在Hotspot中)是否也会删除If语句?

更新:我刚刚意识到JIT编译很可能不是在实例级上完成的,所以我认为这不会起作用,但也许有一种静态的方式?

EN

回答 1

Stack Overflow用户

发布于 2010-09-10 18:29:59

JIT代表"just in time“。这意味着在VM认为它需要它之前,它就被编译了。因此,根据检查的原子性级别,您可能会发现从未运行过的代码无论如何也不会进行JIT编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3683441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档