java吧 关注:1,190,073贴子:12,600,775
  • 1回复贴,共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
    回复