算法:统计整数的二进制表达式中的bit位为1的位数(汉明重量) 普通算法 public int bitCount(int num) { int count = 0; do { if ((num & 1) == 1…
分类:HashMap源码分析
Android 面试准备之「equals 和 == 」
本文为原创文章,如需转载请注明出处,谢谢! 概述 本文将围绕以下五点进行说明 1.equals() 和 == 的作用以及应用 2.hashCode() 的作用及应用 3.hashCode() 和 equals() 的联系…
HashMap在高并发下引起的死循环
HashMap其实并不是线程安全的,在高并发的情况下,是很可能发生死循环的,由此造成CPU 100%,这是很可怕的,所以在多线程的情况下,用HashMap是很不妥当的行为,应采用线程安全类ConcurrentHashMa…
HashMap源码理解
HashMap介绍 HashMap是一个散列表,它是根据关键码值(Key value)而直接进行访问的数据结构。也就是说, 它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度 。这个映射函数叫做散列函数,存放…
ReentrantLock源码分析(待补充)
AbstractQueuedSynchronizer 先分析下同步器AbstractQueuedSynchronizer,这个是用于锁实现的类,ReentrantLock就用到了它 public final void a…
Java 集合框架分析 - ArrayList
本篇文章主要分析一下Java集合框架中的List部分,ArrayList,该源码分析基于JDK1.8,分析工具,AndroidStudio,文章分析不足之处,还请指正! 相关文章1、Java 集合框架分析-概述2、Jav…
HashMap源码分析整理
HashMap源码分析整理 转自:https://mp.weixin.qq.com/s/vRvMvNktoDSQKMMlnj5T0g 结构 Node是HashMap中一个静态内部类 // Node是单向列表 static…
hashmap源码分析jdk8
最近看了下jdk8的hashmap源码,相比于7,在存储结构上有了些改变。 1.在jdk8之前,hashmap的存储结构是数组+链表的形式,那么这种方式随着链表的长度增加,效率也凸显出来。 所以在jdk8中这块做了优化,…
Java 集合框架分析 - Iterator
Java里面的数组数据可以通过索引来获取,那么对象呢?也是通过索引吗?今天我们就来分析一下Java集合中获取集合对象的方法迭代-Iterator。 本篇文章主要分析一下Java集合框架中的迭代器部分,Iterator,该…
HashMap源码分析(下)--Android篇
HashMap中的常量 /** * The default initial capacity - MUST be a power of two. * 默认的初始容量,必须是2的次方 */ static final int…
Java LinkedList源码分析
简介 LinkedList是一个常用的集合类,用于顺序存储元素。LinkedList经常和ArrayList一起被提及。大部分人应该都知道ArrayList内部采用数组保存元素,适合用于随机访问比较多的场景,而随机插入、…
HashMap 源码分析(删除+总结)JDK1.8
文章来源: 1 https://segmentfault.com/a/1190000012926722#articleHeader7 2 https://www.zhihu.com/question/20733617 3…