开发者社区> 问答> 正文

Math.abs问题

MQMessageUtils.java 中有一段根据pk做hash取模,扔mq固定分区的动作,有个Math.abs的注释不是很懂,请问什么情况下会出负值 (除了-2147483648) 并且再次abs后会成正值。。注释里没写具体例子

int pkHash = Math.abs(hashCode) % partitionsNum; // math.abs可能返回负值,这里再取反,把出现负值的数据还是写到固定的分区,仍然可以保证消费顺序 pkHash = Math.abs(pkHash);

原提问者GitHub用户ilaotan

展开
收起
数据大拿 2023-05-04 11:42:36 71 0
1 条回答
写回答
取消 提交回答
  • 有取模计算,如果 Math.abs(Integer.MIN_VALUE) % 3 是能出负数的。

    原回答者GitHub用户ilaotan

    2023-05-05 10:19:00
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载