String s1="hello world";

String s2=new String("hello world");

s1.hashCode()和s2.hashCode()其实是相等的。

hashCode()和equals()都是Object类中的一个方法,String类中重写了两个方法,使得比较的是字符地址指向的内容。

在集合中,set集合是不允许元素重复的,name如何保证元素不重复呢?

当新添加一个元素的时候首先调用这个元素的hashCode方法,得到的哈希码作为这个元素的存储地址,如果这个地址上没有元素,则直接存储在这个地址上;如果这个地址上有元素,在调用equals方法比较,相同则不再存储,不相同的话就会产生冲突,会产生一个链接表,将这两个元素串起来放在同一个哈希码指定的位置上,而实际上会尽量避免哈希冲突。

如果直接调用equals方法,当数据量过大时,每次都会调用一次equals方法,效率低。

用hashCode方法比较减少对象比较次数,提高查找效率。

如果两个对象的哈希码相同则他们不一定相同,如果对象一致则哈希码一定相同相关推荐

  1. zg手册 之 python2.7.7源码分析(1)-- python中的对象

    为什么80%的码农都做不了架构师?>>>    源代码主要目录结构 Demo: python 的示例程序 Doc: 文档 Grammar: 用BNF的语法定义了Python的全部语法 ...

  2. 小码哥iOS学习笔记第二天: OC对象的分类

    Objective-C中的对象, 简称OC对象, 主要可以分为3种 instance对象(实例对象) class对象(类对象) meta-class对象(元类对象) 一.instance instan ...

  3. 使用Java实现发送微信消息(附源码)_此程序在手再也不怕对象跟你闹了

    使用Java实现发送微信消息(附源码)_此程序在手再也不怕对象跟你闹了 此程序在手再也不怕女朋友跟你闹了!!!!自从有了女朋友比如:早安.晚安之类的问候语可不能断,但是也难免有时候会忘记那么该咋么办呢 ...

  4. json对象,java对象,json字符串,java字符串转换方式,没写的自己去看源码!

    package com.sgai.property;import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjs ...

  5. java对象头_我的并发编程(二):java对象头以及synchronized升级过程

    一.概述 研究java对象头的目的是详细分析Java的synchronized锁的升级过程,因为synchronized在锁升级的时候,就是依赖对象头的信息来决定的.本博文针对64位的操作系统来对Ja ...

  6. 2021-06-04 Java对象在Hibernate下的4种状态和Session相关方法以及对象识别

    注:集成开发环境软件:MyEclipse(2017破解版)和mySQL(MySQL Server 8.0) 一.Query(查询) (1)Query(查询)接口允许你在数据库上执行查询并控制查询如何执 ...

  7. 码出高效:Java开发手册笔记(线程池及其源码)

    码出高效:Java开发手册笔记(线程池及其源码) 码出高效:Java开发手册笔记(线程池及其源码) 码出高效:Java开发手册笔记(线程池及其源码) 前言 一.线程池的作用 线程的生命周期 二.线程池 ...

  8. RocketMQ源码(十)—Broker 消息刷盘服务GroupCommitService、FlushRealTimeService、CommitRealTimeService源码深度解析

    深入的介绍了broker的消息刷盘服务源码解析,以及高性能的刷盘机制. 学习RocketMQ的时候,我们知道RocketMQ的刷盘策略有两个,同步或者是异步: 1. 同步刷盘:如上图所示,只有消息真正 ...

  9. 【源码阅读计划】浅析 Java 线程池工作原理及核心源码

    [源码阅读计划]浅析 Java 线程池工作原理及核心源码 为什么要用线程池? 线程池的设计 线程池如何维护自身状态? 线程池如何管理任务? execute函数执行过程(分配) getTask 函数(获 ...

  10. (附源码)springboot福佳生活超市进销存管理系统 附源码261620

    福佳生活超市进销存管理系统 摘 要 随着超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长.超市时时刻刻都需要对商品各种进销存信息进行统计分析.超市进销存管理系统开发的主要目是使 ...

最新文章

  1. hadoop启动页面_轻松搞定Windows下的Hadoop环境安装
  2. cmd 无法切换目录
  3. 这两天一直在捣腾lucene
  4. 26. 删除排序数组中的重复项
  5. html代码 打开本地文件,打开本地HTML文件
  6. 【Android】Android6.0发送短信Demo
  7. 系统学习NLP(四)--数据平滑
  8. 三条中线分的六个三角形_数学中三角形的“五心”你会了吗?教你马上学会。(中考生必看)...
  9. Mujoco制作模拟视频
  10. ImageJ Nikon_ImageJ使用教程之自动细胞计数篇
  11. 在poi-tl的区块对中实现用布尔值插入Word分页符的一种方法
  12. TestCenter测试管理工具安装和卸载(B)
  13. 同时使用 IE7 和 IE6 的方法
  14. 根据指定月份,打印该月份所属的季节3,4,5 春季 6,7,8 夏季 9,10,11 秋季
  15. Django-数据库使用
  16. (递归思路分享)设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?
  17. 模糊锐化涂抹加深减淡海绵以及蒙版
  18. wamp包安装后无法运行:Exception Exception in module wampmanager.exe at 000F15A0.
  19. Java web对试卷进行单选多选答题进行打分_如何快速进行学生学情测试,这里有具体的攻略和操作指南!...
  20. 第十五周翻译 ——配置和概况

热门文章

  1. 小提琴第一把位音位图
  2. Delphi 编译指令与说明
  3. Ajax基础知识 · 上
  4. 为什么Linux系统最大进程号是32767
  5. 多功能存储器芯片的测试系统设计方案
  6. PDF转换成Word,ppt转换成word
  7. win7装xp双系统_win7配置最低要求是什么
  8. 总结我这四年的大学生活!!
  9. 学python要有多少英语词汇量_“扫地僧”!自学Python编程、英语词汇量15000……北大保安再上热搜...
  10. 2023“认证杯”数学中国数学建模赛题浅析