java true_Java性能:true与Boolean.TRUE

首先,使用任何一个优于其他的性能优势最有可能太小而无法相关。在绝大多数情况下,代码简单性/可读性/可维护性更重要。

没有一个示例涉及创建一个布尔实例。在理论上可能的是,4中的3个将触发布尔类的初始化…并且您的应用程序将不会这样做。在这种不太可能的事件中,您的整个应用程序将分配2个不会被分配的对象。

这一个将等于或快于所有其他人,因为它只需要将寄存器设置为零。

boolean isItTrue(arg){

return true;

}

取而代之的是从内存中加载静态引用,而不是将寄存器置零。但是,在某些情况下,JIT编译器可能能够优化此操作。

Boolean isItTrue(arg){

return Boolean.TRUE;

}

在表面上,这涉及到Boolean.valueOf(true)对“box”的调用,但JIT编译器应该能够通过内联调用将其优化为与前一个相同的代码。

Boolean isItTrue(arg){

return true;

}

从表面上看,这涉及到Boolean.booleanValue(Boolean.TRUE)调用“unbox”的布尔值。这个电话可以内联。 JIT编译器也可以避免将引用加载到布尔对象并获取其值字段。

boolean isItTrue(arg){

return Boolean.TRUE

}

底线是它的4个替代方案的相对性能取决于JIT编译器在优化中的成功程度。这将取决于上下文,JIT编译器的具体情况,JVM设置等。在最佳情况下,JIT编译器(至少在理论上)可以为所有编译器生成相同(最佳)代码。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值