为什么IDEA和Eclipse自动生成的hashcode()值通常是乘31

    技术2025-01-12  47

    为什么IDEA和Eclipse自动生成的hashcode()值通常是乘31① 乘一个较大的数可以放大数与数之间的差别,但较大的乘数会导致溢出;② 31只占用5bits,相乘造成数据溢出的几率较小;③ 31可以由i*31 ==(i<<5)-i来表示,现在虚拟机里面都有做相关优化(提高运算效率);④ 31本身是个素数,素数的作用就是如果我用一个素数乘以一个数,那么最终出来的结果只能被素数和被乘数还有1来整除(减少冲突).
    Processed: 0.011, SQL: 9