java 的hashCode值计算

来源:互联网 发布:国家卫生统计网络直报 编辑:程序博客网 时间:2024/05/29 16:00


Java 的hashCode值计算

Java的HashCode的源码:


Scala的HashCode的源码:

scala调用的也是String这个类:

测试代码:

package hash;public class HashRandom {public static void main(String[] args) {String hash11 = "13";String hash12 = "14";String hash13 = "15";String hash1 = "";String hash2 = "4|3";String hash3 = "4|4";String hash4 = "4|5";System.out.println(hash11.hashCode());System.out.println(hash12.hashCode());System.out.println(hash13.hashCode());System.out.println(hash1.hashCode());System.out.println(hash2.hashCode());System.out.println(hash3.hashCode());System.out.println(hash4.hashCode());}}

输出:
1570157115720538675386853869
分析结果计算过程:
-------------------------------------------------------------------
分析第一个计算值:
"13" hashCode 为 1570
1的ASCLL码为:49
3的ASCLL码为:51
循环2次:
第一次循环:31*0+49 =49
第二次循环:31*49+51=1570
-------------------------------------------------------------------
"4|3" hashCode 为 53867
4的ASCLL码为:52
| 的ASCLL码为:124
3的ASCLL码为:51
循环3次:
第一次循环:31*0+52 =52
第二次循环:31*52+124=1736
第二次循环:31*1736+51=53867


0 0