有人能告诉我Java int
方法可以返回的最大和最小String.hashCode()
值是什么?
答案 0 :(得分:6)
String.hashCode ()
返回使用以下公式计算的int
:
public int hashCode()
返回此字符串的哈希码。
String对象的哈希码计算为
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
使用int算术,其中
s[i]
是字符串的 i - 字符, n 是字符串的长度,^表示 幂。 (空字符串的哈希值为零。)
可以使用以下常量找到最小值和最大值。
System.out.println (java.lang.Integer.MAX_VALUE); // 2147483647
System.out.println (java.lang.Integer.MIN_VALUE); // -2147483648
答案 1 :(得分:2)
从文档中可以看出,提升某事物的能力取决于字符串的长度(据我所知,实际上是无限制的),我会说最大值和最小值必须是Integer.MAX_VALUE(分别为2 ^ 31 - 1)和Integer.MIN_VALUE(-2 ^ 31)。
答案 2 :(得分:2)
Java int是4个字节,有符号(两个补码)。 -2,147,483,648至2,147,483,647。像所有数字类型一样,int可以转换为其他数字类型(byte,short,long,float,double)。当完成有损转换(例如,int到byte)时,转换以较小类型的长度为模。