几次面试后才弄懂的HashMap
本人大四,以前也开发过几个项目,Map相关集合也总用。但是从来没有研究过底层的实现,只知道杂用。结果在最开始的几次面试中一脸懵逼。认识到不足后,浅显的学习了一下,总结成一下几点。(如果写错了还望指正)
1.HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null值,因为key不能重复,所以只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的,HashMap是线程不安全的。需要同步可以用ConcurrentHashMap和 Collections.synchronizedMap(Map m),推荐使用ConcurrentHashMap,下次会提到它两
2.默认初始化大小16,负载因子0.75
容量是哈希表中桶(Entry数组)的数量,初始容量知识哈希表在创建时的容量。加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前你容量的乘积时,通过rehash方法将容量翻倍。
3
aaarticlea/png;base64,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" alt="" />
几次面试后才弄懂的HashMap的更多相关文章
- 面试前需要弄懂的SQL
说明:创建数据库 view source print? 1 Create DATABASE database-name 说明:删除数据库 view source print? 1 drop d ...
- 2018前端面试总结,看完弄懂,工资少说加3K | 掘金技术征文
2018前端面试总结,看完弄懂,工资少说加3K | 掘金技术征文:https://juejin.im/post/5b94d8965188255c5a0cdc02
- 彻底弄懂 JavaScript 执行机制
本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我. 不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定 ...
- 这一次,彻底弄懂 JavaScript 执行机制
本文转自https://juejin.im/post/59e85eebf265da430d571f89#heading-4 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还 ...
- SQL Server-聚焦NOLOCK、UPDLOCK、HOLDLOCK、READPAST你弄懂多少?(三十四)
前言 时间流逝比较快,博主也在快马加鞭学习SQL Server,下班回来再晚也不忘记更新下博客,时间挤挤总会有的,现在的努力求的是未来所谓的安稳,每学一门为的是深度而不是广度,求的是知识自成体系而不是 ...
- 彻底弄懂JS的事件冒泡和事件捕获(不推荐阅读)
由于搬去敌台了,好久没来博客园,今天无意中翻到有“误认子弟”的评论,这里特意做个说明. 本文中关于事件冒泡和事件捕获的描述和例子都是OK的,错就错在后面用jquery去展示了利用事件冒泡的例子有误,其 ...
- 一文弄懂神经网络中的反向传播法——BackPropagation【转】
本文转载自:https://www.cnblogs.com/charlotte77/p/5629865.html 一文弄懂神经网络中的反向传播法——BackPropagation 最近在看深度学习 ...
- [转]js模块化编程之彻底弄懂CommonJS和AMD/CMD!
原文: https://www.cnblogs.com/chenguangliang/p/5856701.html ------------------------------------------ ...
- [转帖]彻底弄懂UTF-8、Unicode、宽字符、locale
彻底弄懂UTF-8.Unicode.宽字符.locale linux后端开发 已关注 彻底弄懂UTF-.Unicode.宽字符.locale unicode 是字符集 utf-8是编码格式.. ...
随机推荐
- tomcat 日志切割 catalina.out
在实际生产环境中,tomcat的 catalina.out日志默认是不切割的,由于看起来很不方便,以及在备份等方面都比较麻烦.是时候切割该文件了. 环境说明 centos 7.3 tomcat 8.5 ...
- 高通msm8909耳机调试
http://blog.csdn.net/mike8825/article/details/69489865?locationnum=3&fps=1 1.DTS相应修改: DTS相关代码:ke ...
- iOS学习——Xcode9上传项目到GitHub
最近通过视频在学习一个完整项目的开发流程和思路,为了更真实地模拟在实际开发中的流程,我们需要将项目的代码以及一些资料进行版本控制和管理,一般比较常用的SVN或者Github进行代码版本控制和项目管理. ...
- ASP.NET Core 依赖注入
一.什么是依赖注入(Denpendency Injection) 这也是个老身常谈的问题,到底依赖注入是什么? 为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Control) ...
- hbmy周赛1--C
C - Exam Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit St ...
- yum指令
接上个教程,如果用yum list 命名,运行后出现如下结果:则正确搭建了环境 如 yum search httpd 搜索apache的包 安装gcc ,是c语言的编译器 注意:LANG是临时改变的. ...
- Function方法和属性图
- include指令与include动作的区别(面试要考)
include指令: 语法格式:<%@ include file=" " ...%> 发生作用的时间:页面转换期间 包含的内容:页面的实际内容 转换成的servlet: ...
- JavaScript实现Tab栏切换
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 京东网页上,可以看到下面这种tab栏的切换: 我们把模型抽象出来,实现一 ...
- 【开发技术】web.xml vs struts.xml
web.xml用来配置servlet,监听器(Listener),过滤器(filter),还有404错误跳转页面,500,等还配置欢迎页面等,总之一句话,就是系统总配置方案写在web.xml中 str ...