String.hashCode 哈希值出现重复?
String.hashCode重复
在我学习hash的时候,没有按照教程里面的字符串的值去获取了一个hashcode,然后让这个小白的我惊讶了,这个竟然和教程里面的那个不一样, 对此,我对于这个问题进行了“
研究”,在这里先写点我已经知道的,后续继续学习
- 通过查阅资料,得到了String.hashCode的算法,如下:
str.charAt(0) * 31n-1 + str.charAt(1) * 31n-2 + ... + str.charAt(n-1)
据说这个31就是一个优化后的数字,就是为了避免英文中的重复哈希来的,但是碰上字母大小写或是一些特殊字符,再或者是中文字符,它就不灵了,我这里就是这个情况,还让我纳闷了好久
部分代码:System.out.println("重地".hashCode());//1179395System.out.println("通话".hashCode());//1179395
默认情况下(使用Object类中的方法),不同对象的hash值是不相同的,所以我就疑问了?????
可以看到两个一样,但是我输入的是“童话”,结果如下:
System.out.println("重地".hashCode());//1179395
System.out.println("通话".hashCode());//1179395
System.out.println("童话".hashCode());//1011096
- 又找到两个例子
"柳柴"与"柴柕" hashCode=851553
"志捘"与"崇몈" hashCode=786017
- 知识点
java中所有的对象都有一个父类Object,而Object类都有hashCode方法,也就是说java中所有的类均会有hashCode方法;
- 通过查找技术文档发现,String中的重写了hashCode方法,但是String类的hashCode算法是固定的
- str.charAt(0) * 31n-1 + str.charAt(1) * 31n-2 + … + str.charAt(n-1)
- 根据算法就可以看到是可能会存在相同hashCode的
相关文章:

Selenium2(WebDriver)总结(二)---Firefox的firebug插件参数设置(补充)
Selenium2(WebDriver)总结(二)---Firefox的firebug插件参数设置(补充) 本文是对上一节的补充:http://www.cnblogs.com/puresoul/p/4251536.html 使用Selenium2(webdriver)启动firefox且自动加载firebug插件时,切换到firebug插件的网络和cookies部分时&am…
个人信息管理器
转:http://www.cnblogs.com/maxianghui/archive/2006/10/10/524873.html 经过一个多月的努力,终于搞定了这个小软件,请大家给点意见我。采用VC# Access2003 XML开发,扩展了TreeView控件,扩展了RichTextBox控件&#…

分享一些我在开发过程中用过的资源
以下所提到的控件/组件均为开源或免费的。1,ComboBox控件: Upgrade Your Select Element to a Combo Box2,DateTimePicker控件: GrayMetterSoft3,TabStrip控件: A simple ASP.NET Web TabStrip User Control4,Grid控件: XGrid5,数据结构Tree: A Generic Tree Collection6,csv文…

Ubuntu16.04如何彻底删除Apache2
虽然作为运维人员通常情况不建议随意删除Linux系统上面的任何软件,主要指生产环境下,测试环境也不能太随意。 但是有的时候,比如系统环境要变一变,我们就需要替换一些淘汰的软件,对此我们一般都会删除。 按照下面的步骤…

Java案例——统计字符串中每个字符串出现的次数
统计字符串中每个字符串出现的次数 需求: 1.键盘录入一个字符串,要求统计字符串中每个字符串出现的次数 举例:键盘录入“aababcabcdabcde” 在控制台输出:“a(5)f(4)c(3)g(2)e(1)” 思路: 1.键盘录入一个字…
在C#中怎样推断线程当前所处的状态
在C#中怎样推断线程当前所处的状态老帅 在C#中。线程对象Thread使用ThreadState属性指示线程状态。它是带Flags特性的枚举类型对象。ThreadState 为线程定义了一组全部可能的执行状态。一旦线程被创建。它就至少处于当中一个状态中。直到终止。在公共语言执行时中创建的线程最…

写《回国驯火记》的那个安普若
2007/3/27写《回国驯火记》的那个安普若 http://an.haiguinet.com/以前光觉得安普若的 《 回国驯火记》[ 《回国驯火记》又名《回国训火记》, 人送外号《熏火鸡》。这是一部表现 海归沉浮,新潮时尚,商战阴谋,名人八卦的小说。以故…

毒霸主程序集成反流氓
原来使用毒霸杀流氓软件,还得单独启动反间谍模块扫描。考虑到很多用户还清楚如何调用反间谍,主程序干脆直接调用反间谍库,会把最恶劣的流氓程序直接清除掉,一般的流氓程序会被忽略,首选解决最影响用户感观的问题。

.NET(C#)连接各类数据库-集锦
1.C#连接连接Access程序代码: ------------------------------------------------------------------------------- usingSystem.Data;usingSystem.Data.OleDb;..stringstrConnection"ProviderMicrosoft.Jet.OleDb.4.0;";strConnection"Data SourceC:BegASPNETN…

CQOI2015 任务查询系统
传送门 又是一句经常见到的话……做完这题对主席树的理解会更好一些…… 这道题把普通的主席树单点修改区间查询改成了区间修改单点查询。这个的话我们可以改成差分解决……把一个操作改成两个,然后把所有操作按照时间进行排序。注意这里修改细节很多,因…

在?三缺一,来斗个地主——肝个斗地主案例(java)
在?三缺一,来斗个地主 *手动狗头 * 模拟斗地主升级版,通过程序实现斗地主过程中的洗牌、发牌和看牌,要求:对牌进行排序 思路: 1.创建HashMap,键是编号,值是牌 2.创建ArrayList&…

RK3399 BOX编译步骤
1、U-Boot编译: make rk3399_box_defconfig make ARCHVaarch64 生成trust.img、 RK3399MiniLoaderAll_V1.05.bin、 uboot.img; 2、Kernel编译: make ARCHarm64 rockchip_defconfig(make ARCHarm64 sunny_rk3399_defconfig) make ARCHarm64 rk…

小型星形网络结构设计示例
<?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" />以下内容摘自笔者编著的《网络工程师必读——网络系统设计》一书: 上节介绍的是网络形成后,由LAN MapShot 2.0自动发现网络拓扑结构的方法。在网络没…

IOS_多线程_ASI_AFN_UIWebView
H:/0730/00_多线程4种售票_ViewController.h// // ViewController.h // 卖票 // // Created by apple on 13-7-29. // Copyright (c) 2013年 itcast. All rights reserved. //#import <UIKit/UIKit.h>interface ViewController : UIViewController// 多行文本提示框 …

Error:java: 错误: 不支持发行版本 14
Error:java: 错误: 不支持发行版本 14修改全局设置修改module设置在我换了电脑把IDEA的project转移过来之后,开始出现了问题 修改全局设置 修改 Files -> Settings -> Project Structure -> Project -> Project Language Level->选择版本比当前jdk版…

python简说(十五)MD5加密
def my_md5(s): news str(s).encode() m hashlib.md5(news) return m.hexdigest()转载于:https://www.cnblogs.com/wangtingting920416/p/10099896.html

[错误]xstring(525) : warning C4530:
"warning C4530:" 在编译选项中添加上 -GX 就好了,详情参MSDN. 作用:remove _ATL_MIN_CRT Link option

程序模拟电影院窗口卖票,多线程Demo
某电影院目前正在上映国产大片,共有100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票 卖电影票Demo实现步骤1.SellTicket类2.SellTicketDemo测试类3.测试结果4.问题反思4.1 相同的票出现了多次4.2 出现了负数的票实现步骤 1. 定义一…

(C#加密)幻术-大踲无形
首先:我看下面的代码只是知道大概的原理核心算法还是不太清楚~~有清楚的麻烦回复下谢谢咯咯--这也是看Msdn就是把在一个图片上隐藏数据 usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usin…

01 python爬虫
--- 转载于:https://www.cnblogs.com/haima/p/10107708.html

【BZOJ3963】[WF2011]MachineWorks cdq分治+斜率优化
【BZOJ3963】[WF2011]MachineWorks Description 你是任意性复杂机器公司(Arbitrarily Complex Machines, ACM)的经理,公司使用更加先进的机械设备生产先进的机器。原来的那一台生产机器已经坏了,所以你要去为公司买一台新的生产机器。你的任务是在转型期…

金山发布《2006年度信息安全报告》
2006年度,国内的互联网环境因接踵而至的信息安全事件一再掀起了波澜。作为国内领先的信息安全厂商,金山毒霸同数千万国内用户一起见证了对病毒、对流氓软件发出的各种绝技杀手锏。 2007年2月8日,金山软件正式发布了《中国互联网2006年度信息安…

Nginx+Apache Yii2.0 配置方案
最近用Yii2.0框架做了个小项目,虽然项目本身业务逻辑不复杂,但是由于本身业务逻辑的特殊性,在上午9点到12点之间系统访问量会突然上升(浏览量和用户上传文件量)。导致系统单纯的部署在Apache下,支撑不了这么…

RobotFramework下的http接口自动化Set Request Body 关键字的使用
Set Request Body关键字用来设置http 请求时的body 信息,尤其是在post 请求时,经常需要用到这个关键字。 该关键字接收一个参数,[ body ] 示例1:登录博客园(http://www.cnblogs.com/)时,设置登录…

JDK11使用IDEA,配置JavaFX
JDK11使用IDEA,配置JavaFX1.下载javaFX相关的包2.在实际Demo中试验哪里少了添加哪里导入lib文件夹,之后点击OK配置VMoption配置成功3.运行,大功告成1.下载javaFX相关的包 需要下载对应的包,进入openjfx.cn网站下载 https://gluon…

写了一个PPT,用于公司内部培训
匆忙写成,以后会慢慢补充请用力一击中等规模的并发程序设计http://files.cnblogs.com/jobs/2007-5-9-concurrent-ppt.rar2007-5-10修改版(带参考文档)http://files.cnblogs.com/jobs/2007-5-10-concurrent-ppt.rar转载于:https://www.cnblogs…

终端bash美化(FC)
终端bash美化(FC) 用Linux也已经一年多了,感觉几乎还是什么都不会。大概是一直再做一些没多大意义的事的缘故吧,就像今天些的内容一样。以前搞了一段时间的GENTOO,发现里面的bash提示(也就是[userhostname directory]$…
List and ArrayList
List<> and ArrayList Class DiagramsUsing the Bit Complement of the BinarySearch() Result代码1using System; 2using System.Collections.Generic; 3class Program 4{ 5 static void Main() 6 { 7 List<string> list new List<string>();…

spring boot jpa 整合
1,Eclipse JPA Tool配置 https://www.cnblogs.com/wgslucky/p/10109300.html 2,项目地址 https://gitee.com/wgslucky/springboot-jpa 转载于:https://www.cnblogs.com/wgslucky/p/10109869.html

安装JDK1.8+环境配置
安装JDK1.8环境配置1.下载JDK2.安装JDK3.环境配置3.1 新建系统变量3.2 添加Path路径3.3 使用cmd命令行验证是否环境配置成功1.下载JDK 直接官网下载:http://www.oracle.com 下载链接https://www.oracle.com/java/technologies/javase-downloads.html#JDK8 选择自己…