java吧 关注:1,185,413贴子:12,588,387
  • 4回复贴,共1

【不水】[小于等于] 与 [大于取反] 哪个快?

只看楼主收藏回复

今天看jdk源码,在ConcurrentHashMap中,发现以下代码

!(loadFactor > 0)
很显然等价于loadFactor <= 0 ,但为何Doug Lea大神要这么写呢?难道jvm中,算loadFactor > 0之后取反比直接算loadFactor <= 0 更快?
loadFactor <= 0是不是分三步
1、boolean temp1 = loadFactor < 0
2、boolean temp2 = loadFactor == 0
3、boolean result = temp1 & temp2
而!(loadFactor > 0) 只分两步
1、boolean temp1 = loadFactor > 0
2、boolean result = !temp1
因为少算了一步,所以更快?有没有大神来分析一下


IP属地:湖北1楼2016-04-22 10:33回复
    我艹,秒沉啊


    青铜星玩家
    百度移动游戏玩家均可认证(限百度账号),去领取
    活动截止:2100-01-01
    去徽章馆》
    IP属地:湖北2楼2016-04-22 10:54
    回复
      感觉是一样的。。。


      3楼2016-04-22 10:54
      收起回复
        楼主的意思不是JAVE生成的class .
        他的意思是,电脑里 微机原理里的寄存器。
        机器指令什么什么的。。。
        也是相当的会灌水了。。


        IP属地:广东4楼2016-04-22 10:56
        回复