随笔分类 -  Java源码

摘要:1、Java集合分类 主要分为Set、Queue、List和Map。 https://www.cnblogs.com/fankongkong/p/6382825.html https://www.jianshu.com/p/939b8a672070 1)说说常见的集合有哪些吧? 答:Map接口和Co 阅读全文
posted @ 2019-07-15 22:08 fankongkong 阅读(133) 评论(0) 推荐(0)
摘要:1、Executor背景与简介 java的线程既是工作单元,也是执行机制。从JDK 5开始,把工作单元与执行机制分离开来。 工作单元包括Runnable和Callable,而执行机制由Executor框架提供。 executor框架的两级调度模型: 在上层,Java多线程程序通常把应用分解为若干个任 阅读全文
posted @ 2017-08-08 11:00 fankongkong 阅读(476) 评论(0) 推荐(0)
摘要:1、等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作。join用于让当前执行线程等待join线程执行结束。其实现原理是不停检查join线程是否存活,如果join线程存活则让当前线程永远等待。直到join线程中止后,线程的this.not 阅读全文
posted @ 2017-08-05 20:56 fankongkong 阅读(188) 评论(0) 推荐(0)
摘要:1、背景 Java从JDK1.5开始提供了java.util.concurrent.atomic包,这个包中的原子操作类提供了一种用法简单,性能高效,线程安全地更新一个变量的方式。 Atomic包里一共提供了13个类,属于4种类型的原子更新方式,分别是原子更新基本类型,原子更新数组,原子更新引用和原 阅读全文
posted @ 2017-08-05 10:33 fankongkong 阅读(734) 评论(0) 推荐(0)
摘要:1、ConcurrentHashMap锁分段技术 ConcurrentHashMap使用锁分段技术,首先将数据分成一段一段地存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。 2、ConcurrentHashMap的结构 ConcurrentH 阅读全文
posted @ 2017-08-03 16:06 fankongkong 阅读(201) 评论(0) 推荐(0)
摘要:一、hash方法 如下是jdk1.8中的源码 (1)HashMap允许一个key为空,因此key为null 的hash 值为0。 a、首先获取对象的hashCode()值; b、然后将hashCode值右移16位; c、然后将右移后的值与原来的hashCode做异或运算,返回结果。 (其中h>>>1 阅读全文
posted @ 2017-04-19 10:03 fankongkong 阅读(299) 评论(0) 推荐(0)