- 博客(5)
- 收藏
- 关注

原创 HashMap的扩容机制------resize()
一:首先要知道HashMap什么时候扩容当元素向HashMap容器中添加元素的时候,会判断当前元素的个数,如果当前元素的个数大于等于阈值时,即当前数组table的长度*加载因子就要进行自动扩容。由于HashMap的底层数据结构是“链表散列”,即数组和链表的组合,而数组是无法自动扩容的,所以只能是换一个更大的数组去装填以前的元素和将要添加的新元素分析resize()方法的源代码可以发现:在jd...
2018-10-25 21:19:07
10525
1
翻译 Java内存回收之可达性分析算法
Java内存回收时的可达性分析算法也称为传递跟踪算法;Java中,是通过可达性分析算法来判断对象是否存活的。1:算法的思路通过一系列的“GC Roots”对象作为起点,开始向下搜索搜索所走过的路径称为引用链;当一个对象到GC Roots没有任何引用链时(即从GC Roots到这个对象不可达),则证明该对象不可用Java中的对象都链接在一个个根节点上,所以内存中会有许多的根节点(即GC...
2018-10-25 09:10:59
840
转载 HashTable的底层分析
HashTable的底层原理一:数据结构和HashMap的数据结构是一样的二:源码分析HashTable的主要方法的源码和HashMap类似,最重要的区别是她所有的操作都是通过synchronized锁定保护的只有获得了对应的锁才能进行后续的读写操作三:HashTable和HashMap的区别HashMap是非同步的,没有对读写等操作进行锁保护,所以是线程不安全的,在多线程场景下会出...
2018-10-22 22:07:26
1098
翻译 HashMap的底层分析
标题HashMap的底层结构HashMap是基于哈希表的Map接口实现,以key-value的形式存在。在HashMap中,key-value总是以一个整体来处理系统会根据hash算法来计算key-value的存储位置,我们总是可以通过key快速的存取value**一:**定义HashMap实现了Map接口,继承AbstractMap。其中Map接口定义了键映射到值的原则而Abstract...
2018-10-22 21:57:29
283
原创 JAVA封装数据类型和基本数据类型的比较
一:使用==比较不同封装数据类型的比较会出现编译出错 public static void main(String[] args) { Integer integer=5; Long aa=5l; System.out.println(integer==aa);//此处报错 } 相同的封装数据...
2018-08-15 15:47:30
1707
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人