09 2018 档案
摘要:很精彩的一次内部分享,介绍了大部分的GC算法理论知识,JVM博大精深,本篇文章只是结合本次内部分享总结的一些理论知识,如果有大佬有疑问,欢迎留言指出! Concurrent:并发,程序一边运行一边做GC Parallel:并行,一块区域,一个人做清扫,需要100s,但是把区域分成两块,用两个人扫,时
阅读全文
摘要:明天老王要给我们讲JVM的知识,提前发了一个小Demo给我们看,代码如下: 运行上述代码,结果毫无疑问,电脑瞬间开始狂躁起来,过了十几秒,然后G了 基于JDK1.8运行的,估计老版本会崩的更快。。。 如果不计算内存,这个HashMap一共要插入4000*4000*4个对象,但是其实只有4个是不重复的
阅读全文
摘要:本文旨在两个线程交替运行,不多哔哔直接看代码吧 该实现的原理也非常简单,定义一个对象,因为一个对象有且只有一个锁,所以让两个线程循环让此对象解锁->加锁,从而达到线程交替运行的目的; 个人觉得此方法还不够好,后续总结了再继续补充,还望看到的大佬们多指点指点!
阅读全文
摘要:刚刚跟几个好朋友喝完小酒回家,简单大概复习一下ArrayList的扩容原理,由于头有点小晕,就只大概说一下扩容的原理哈; 首先ArrayList实现了List接口,继承了AbstractList,大家都知道底层是由数组实现的,但是我们都知道数组是不会增的,那么ArrayList是如何自增扩容的呢?
阅读全文
摘要:我们都知道HashTable是线程安全的类,因为使用了Synchronized来锁整张Hash表来实现线程安全,让线程独占; ConcurrentHashMap的锁分离技术就是用多个锁来控制对Hash表的不同部分进行修改,因为我可能只需要对一小块部分进行操作,而如果锁整张表开销太大了,其内部实现就是
阅读全文
摘要:HashMap的数据结构:数组+链表+红黑树;Java7中的HashMap只由数组+链表构成;Java8引入了红黑树,提高了HashMap的性能;借鉴一张图来说明,原文:https://www.jianshu.com/p/8324a34577a0 下面简单说一下存储过程: 1.接受传入的参数,通过k
阅读全文
摘要:fail-fast机制即为快速失败机制,个人认为是一种防护措施,在集合结构发生改变的时候,使尽全力抛出ConcurrentModificationException,所以该机制大部分用途都是用来检测Bug的; 下面的代码可以引发fail-fast fail-fast原理 每个集合都会实现可遍历的接口
阅读全文