java 的hashCode值计算
2017-01-13 16:58
281 查看
Java 的hashCode值计算
Java的HashCode的源码:
Scala的HashCode的源码:
scala调用的也是String这个类:
测试代码:
输出:
分析结果计算过程:
-------------------------------------------------------------------
分析第一个计算值:
"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
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()); } }
输出:
1570 1571 1572 0 53867 53868 53869
分析结果计算过程:
-------------------------------------------------------------------
分析第一个计算值:
"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
相关文章推荐
- Java多线程--初识线程与基本使用
- Spring Boot . 3 -- Spring Boot Auto_configuration 是如何实现的?
- Eclipse创建J2EE WEB项目出现project facet问题
- java的锁,synchronize和lock
- javap的基本用法
- java中枚举类的用法
- Eclipse搭建SpringMVC
- CI持续集成系统中的Java环境安装
- java 反射 模拟spring自动注入
- 使用Struts2的标签库(一)
- 深入理解JVM—JVM内存模型
- Java考试题之四
- Java考试题之四
- Java考试题之四
- JVM虚拟机类加载机制-过程
- Spring 读取配置文件的俩种方式
- java实现pdf转图片pdf
- Beyond Compare如何比较Java源代码文件
- Java 多线程编程
- spring4学习日记——第六天