Java中String的哈希值计算
下面都是从String类的源码中粘贴出来的
 private int hash; // Default to 0
 public int hashCode() {
         int h = hash;
         if (h == 0 && value.length > 0) {
             char val[] = value;
             for (int i = 0; i < value.length; i++) {
                 h = 31 * h + val[i];
             }
             hash = h;
         }
         return h;
 }
下面利用上述方法计算字符串”Lee”的哈希值
‘L’的ASCII码为76,’e’的ASCII码为101
for循环3次
- h=31*0+76=76
 - h=31*76+101=2457
 - h=31*2457+101=76268
 
所以字符串”Lee”的哈希码就是76268
Java中String的哈希值计算的更多相关文章
- Java中String为什么是不可变的
		
1.在Java中,String类是不可变类,一个不可变类是一个简单的类,并且这个的实例也不能被修改, 这个类的实例创建的时候初始化所有的信息,并且这些信息不能够被修改 2.字符串常量池 字符串常量池是 ...
 - java中String类为什么不可变?
		
在面试中经常遇到这样的问题:1.什么是不可变对象.不可变对象有什么好处.在什么情景下使用它,或者更具体一点,java的String类为什么要设置成不可变类型? 1.不可变对象,顾名思义就是创建后的对象 ...
 - java中String常见问题
		
java中String常见问题 1.字符串比较==和equals ==:比较的是对象,判断两个引用的是否为同一内存地址(物理对象) equals:比较的是值 2.通过空白字符拆封字符串 str.spi ...
 - java中string内存的相关知识点
		
(一):区别java内存中堆和栈: 1.栈:数据可以共享,存放基本数据类型和对象的引用,其中对象存放在堆中,对象的引用存放在栈中: 当在一段代码块定义一个变量时,就在栈中 为这个变量分配内存空间,当该 ...
 - java中String的相等比较
		
首先贴出测试用例: package test; import org.junit.Test; /** * Created by Administrator on 2015/9/16. * */ pub ...
 - java中String类型变量的赋值问题
		
第一节 String类型的方法参数 运行下面这段代码,其结果是什么? package com.test; public class Example { String str = new String( ...
 - 探秘Java中String、StringBuilder以及StringBuffer
		
探秘Java中String.StringBuilder以及StringBuffer 相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问 到的地方,今天就来和大家一起学习 ...
 - java中String类学习
		
java中String类的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度. (3)charAT:字符操作,按照索引值获得字符串中的指定字符 ...
 - Java中String对象的不可变性
		
首先看一个程序 package reverse; public class Reverse { public static void main(String[] args) { String c1=n ...
 
随机推荐
- Java基础知识强化之集合框架笔记08:Collection集合自定义对象并遍历案例(使用迭代器)
			
1. Collection集合自定义对象并遍历案例(使用迭代器) (1)首先定义一个Student.java,如下: package com.himi.collectionIterator; publ ...
 - 线程技术 ☞ Future模式
			
线程技术可以让我们的程序同时做多件事情,线程的工作模式有很多,常见的一种模式就是处理网站的并发,今天我来说说线程另一种很常见的模式,这个模式和前端里的ajax类似:浏览器一个主线程执行javascri ...
 - Java编程思想-泛型-泛型方法
			
代码示例如下: package generics; //: generics/GenericMethods.java public class GenericMethods<A> { // ...
 - My.Ioc 代码示例——使用观察者机制捕获注册项状态的变化
			
在 My.Ioc 中,要想在服务注销/注册时获得通知,可以通过订阅 ObjectBuilderRegistered 和 ObjectBuilderUnregistering 这两个事件来实现.但是,使 ...
 - sql - 面试
			
一,关于 group by 表内容: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-10 负 200 ...
 - 配置Statspack
			
配置Statspack 配置前需要了解3个内容. 1.创建Statspack模式使用的密码. 2.Statspack使用的默认表空间. 3.Statspack使用的临时表空间. Create Tabl ...
 - UIWebView(本地数据部分)
			
创建UIWebView和UISegmentedControl webView用于显示内容,segmentedControl用于切换读取内容的类型 为了方便起见 用拖拉控件形式布局完界面 /* 使用UI ...
 - Objective-C 笔记二 类、对象和方法
			
对象就是一个物件.面向对象的程序设计可以看成一个物件和你想对它做的事情.这与C语言不同,C语言通常称为过程性语言.在C语言中,通常是先考虑要做什么,然后才关注对象,这几乎总是与面相对象的思考过程相反. ...
 - onresize的定义方式
			
1.直接在html中定义如<body onresize="doResize()"/> 2.直接给onresize赋值给window和body的onresize赋值如wi ...
 - equals和hashcode
			
java当中所有的类都继承于Object这个基类,在object中的基类定义了一个equals方法,public boolean equals(Object obj) { return (th ...