为什么Java String哈希函数乘数为31? 哈喽,大家好,我是了不起。 今天给大家介绍一个底层数字问题——为什么Java String哈希函数乘数为31? 1、源码重现 在这个实现中,31 被用作乘数。那么,为什么选择 31 作为乘数呢? 2、降低哈希冲突 31 是一个质数,相信大家学过数学的,质数是这样定义的: 指在大于1的自然数中,除了1和它本身以外没有任何正因数的自然数。 在哈希函数中,使用质数作为乘数可以提高哈希值的分布均匀性。如果 开发运维 2024-04-26 法医