hashcode与字符串
问题1. 不同的字符串可能会有相同的HashCode吗?
hashcode是用来判断两个字符串是否相等的依据,不同的字符串不可能有相同的hashcode,但不同的hashCode经过与长度的取余,就很可能产生相同的hashCode,就是所谓的哈希冲突. 如:
public static void main(String[] args) {
- int hash1 = "ABCDEa123abc".hashCode();
- int hash2 = "ABCDFB123abc".hashCode();
- System.out.println(hash1);
- System.out.println(hash2);
- }
- output:
- 165374702
- 165374702
延伸问题: hashcode相同,字符串相同吗?答案是不一定。
答案: 不可能。如果你自己重写equals和hashcode方法是可以实现的,但是java规范要求两个equals的对象一定要有相同的hashcode。
String类是jdk里的基础类,是严格遵守规范的,而且是final的,不能继承,所以也没有重写覆盖hashcode方法的可能。
答案: 一定相同。
hashcode是由简单的Hash算法得出来的,根据字符串的值算出来的,每次算出来的结果都相同
hashcode与字符串的更多相关文章
- Java equals()方法和hashCode()方法
		equals()方法 如果满足了以下任何一个条件,就不需要覆盖equals()方法: 1 类的每个实例本质上都是唯一的. 2 不关心类是否提供了“逻辑相等”的测试功能. 3 父类已经覆盖了equals ... 
- 聊一聊Java字符串的不可变
		前言 在 Java 开发中 String (字符串)对象是我们使用最频繁的对象,也是很重要的对象.正是使用得如此频繁,String 在实现层面上不断进行优化,从 Java6 到 Java7,再到 Ja ... 
- Java中的HashTable详解
		Hashtables提供了一个很有用的方法可以使应用程序的性能达到最佳. Hashtables(哈 希表)在计算机领域中已不 是一个新概念了.它们是用来加快计算机的处理速度的,用当今的标准来处理,速度 ... 
- Java中的HashMap 浅析
		在Java的集合框架中,HashSet,HashMap是用的比较多的一种,顺序结构的ArrayList.LinkedList这种也比较多,而像那几个线程同步的容器就用的比较少,像Vector和Hash ... 
- java hashtable
		java hashtable Hashtables提供了一个很有用的方法可以使应用程序的性能达到最佳. Hashtables(哈希表)在计算机领域中已不 是一个新概念了.它们是用来加快计算机的处理速度 ... 
- 温故而知新 Volley源码解读与思考
		相比新的网络请求框架Volley真的很落后,一无是处吗,要知道Volley是由google官方推出的,虽然推出的时间很久了,但是其中依然有值得学习的地方. 从命名我们就能看出一些端倪,volley中 ... 
- Java基础学习笔记十六 集合框架(二)
		List List接口的特点: 它是一个元素存取有序的集合.例如,存元素的顺序是11.22.33.那么集合中,元素的存储就是按照11.22.33的顺序完成的. 它是一个带有索引的集合,通过索引就可以精 ... 
- JAVA-String,StringBuilder,StringBuffer例子(基础必备)
		package com.net.xinfang.reflect; import java.io.UnsupportedEncodingException; /** * String不属于8种基本数据类 ... 
- Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(3) Date
		本章主要介绍Date类,并通过示例学习如何使用它.最后,讲解一下UTC.GMT和时区的关系. Date 介绍 Date 定义 public class Date implements java.io. ... 
随机推荐
- iOS请求服务器数据去空NSNull
			我们在处理数据库接口的过程中,如果数据中出现null,我们是没法处理的.我在使用NSUserDaults保存后,出现崩溃. null产生原因 null是后台在处理数据的时候,如果没有设置value值, ... 
- 【转】【Http】Http各种错误的意思
			IIS状态代码的含义 当用户试图通过HTTP或文件传输协议(FTP)访问一台正在运行Internet信息服务(IIS)的服务器上的内容时,IIS返回一个表示该请求的状态的数字代码.该状态代码记录在II ... 
- python 反模式
			不使用 pythonic 的循环: l = [1,2,3] #Bad for i in range(0,len(list)): le = l[i] print(i,le) #Good for i,le ... 
- 使用WITH AS提高性能简化嵌套SQL(转)
			http://www.cnblogs.com/fygh/archive/2011/08/31/2160266.html 一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery ... 
- Linux常用指令---工作
			查看所有用户cat /etc/passwd 复制整个目录cp -ri A/B/* A1/B1/ 若复制过程中询问是否覆盖,输入y按回车 另外若A A1不在同一目录下,最好填绝对路径,就是/xxx/xx ... 
- [CareerCup] 1.6 Rotate Image 翻转图像
			1.6 Given an image represented by an NxN matrix, where each pixel in the image is 4 bytes, write a m ... 
- [CareerCup] 9.10 Stack Boxes 垒箱子问题
			9.10 You have a stack of n boxes, with widths w., heights hir and depths drThe boxes cannot be rotat ... 
- java数据类型总结
			java8大基本数据类型: 整型: byte 字节型 1字节 数据范围:-27 ~ 27- 1 即:-128 ~ 127 short 短整型 2字节 数据范围:-215 ~ ... 
- SVN技术交流提纲
			SVN技术交流提纲:http://lazio10000.github.io/tech/SVN/#/bored 
- The entity type <type> is not part of the model for the current context
			这是在网站里遇到的一个错误,自动生成的不能手动添加, reference: http://stackoverflow.com/questions/19695545/the-entity-type-xx ... 
