java源码解析
源码了解:hadluo
这个作者很懒,什么都没留下…
展开
-
CountDownLatch 源码详解
CountDownLatch共享锁,多个线程可以同时拿到锁。本文不讲AQS原理。看下面一段客户端代码 public static void main(String[] args) throws InterruptedException { final CountDownLatch latch = new CountDownLatch(2); new Thread() { public void run() { Sys原创 2020-07-30 18:37:21 · 295 阅读 · 0 评论 -
java线程池 源码调试 解惑面试
1.线程池的用法不作介绍,本文直接调试jdk7线程池源码,来介绍执行具体流程。客户端代码 public static void main(String[] args) throws InterruptedException { ExecutorService executorService = Executors.newFixedThreadPool(1); ...原创 2020-02-19 18:16:32 · 355 阅读 · 0 评论 -
FutureTask 源码解析
1.FutureTask 用于获取线程run方法的返回值。下面看个实例代码 static class MyTask implements Callable<String> { @Override public String call() throws Exception { return "xxx"; } ...原创 2020-02-04 17:25:26 · 173 阅读 · 0 评论 -
AQS详解 2
1.今天我们来讲下释放锁继续接着(AQS详解1)我们分析,首先回顾下客户端代码 public static void main(String[] args) throws InterruptedException { // final ReentrantLock lock = new ReentrantLock(); final MutexLock lock =...原创 2020-01-25 15:56:21 · 471 阅读 · 1 评论 -
AQS详解 1
1.本文不讲概念,用jdk8调试一步一步搞清AQS这个东西,请耐心并跟着本文实操。现在我们先实现下面这个类:public class MutexLock { static class Sync extends AbstractQueuedSynchronizer { private static final long serialVersionUID = 3601133938...原创 2020-01-21 16:42:41 · 251 阅读 · 0 评论 -
EnumSet源码解析
1.EnumSet用法场景1.存储一种类型枚举集合。2.不允许存储重复枚举值。3.线程不安全。4.内部是二进制运算,效率极高。public class Test { enum K { A, B, C } public static void main(String[] args) { EnumSet&...原创 2020-01-07 15:03:00 · 191 阅读 · 0 评论 -
CopyOnWriteArrayList 面试集锦
1.CopyOnWriteArrayList是线程安全List集合,我们看下add方法的实现:先拷贝了【当前集合 存储数据的数组】 一份副本,然后操作副本,add对象,最后将副本引用赋值给 【当前集合 存储数据的数组】。在此过程中操作的都是副本,所以别的线程修改此集合不会导致线程安全问题。CopyOnWriteArrayList 有几个缺点:1、由于写操作的时候,需要拷贝数组,会消耗内存,...原创 2019-10-31 10:19:11 · 831 阅读 · 0 评论 -
ArrayList面试集锦
1.Arrays.asList误区 String[] arrys = { "one", "two", "three" }; List<String> list = Arrays.asList(arrys); list.add("four");运行上面代码报错原因是Arrays.asList返回的不是真正的ArrayList类...原创 2019-10-30 15:45:44 · 203 阅读 · 0 评论 -
AbstractRoutingDataSource spring数据源读写分离
1.spring 提供了动态接入数据源接口 ,靠AbstractRoutingDataSource抽象类来实现。下面来介绍下原理。2.先看下项目配置文件(配置读写分离) <!--master_dataSource为主数据源 ,slave_dataSource为从数据源,DynamicDataSource为继承AbstractRoutingDataSource 的自定义实现类(用来选择数据...原创 2019-09-18 14:44:03 · 437 阅读 · 0 评论 -
CAS AtomicInteger 源码解析
1.CAS简介(复制的,可以跳过看后面代码实例)CAS,Compare and Swap即比较并替换,设计并发算法时常用到的一种技术,Doug lea大神在java同步器中大量使用了CAS技术,鬼斧神工的实现了多线程执行的安全性。目前的处理器基本都支持CAS,只不过不同的厂家的实现不一样罢了。CAS有三个操作数:内存值V、旧的预期值A、要修改的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B原创 2017-09-20 18:07:55 · 396 阅读 · 0 评论 -
ArrayBlockingQueue源码分析
1.很久没写博客了,原因是重新找了份电商后台工作。今天来简单解析下JDK的ArrayBlockingQueue阻塞循环队列。首先我们来看下ArrayBlockingQueue的成员变量 /**底层的 队列数组*/ final Object[] items; /**读取元素时的下标*/ int takeIndex; /**添加元素时 的 下标*/ int原创 2017-03-20 15:47:34 · 3966 阅读 · 0 评论 -
LinkedList解析
1.LinkedList是个双向循环链表。见下图: 2.下面自己照jdk写个简单例子://首先是链表的结点的数据结构结构static class Entry<E> { E element; // 存放的元素 Entry<E> next; // 指向下一个 Entry节点 Entry<E> previous; // 指向上一个Entry节点 Ent原创 2017-01-01 18:06:49 · 2391 阅读 · 0 评论 -
自己实现ArrayList
今天讲解Arraylist线性表实现,废话不多说上代码:public class MyArrayList { private static final Object[] EMPTY_ELEMENTDATA = {}; private static final int DEFAULT_CAPACITY = 10; transient Object[] elementData;原创 2016-12-30 19:11:06 · 2569 阅读 · 0 评论 -
HashMap面试详解
今天看了这篇文章希望您能 恍然大悟,醍醐灌顶,豁然开朗 和 茅塞顿开。 废话不多说,上代码。首先就是可爱的Entry类。public class Entry<K,V> { final K key ; // key值 V value ; // value值 Entry<K, V> next ; //如果冲突了(存放在map中主体数组的位置相同),则添加链表节点 。 此属原创 2016-12-29 11:56:34 · 2559 阅读 · 0 评论 -
Integer的享元模式解析
1.先看一段代码:public static void main(String[] args) { Integer i1 = 12 ; Integer i2 = 12 ; System.out.println(i1 == i2); Integer b1 = 128 ; Integer b2 = 128 ;原创 2017-01-03 16:55:11 · 4459 阅读 · 1 评论 -
StringBuilder源码解析
1.StringBuilder是线程不安全的,里面的char[]是可变的,增删改操作都是依赖System.arraycopy 函数来实现的。StringBuilder会默认构造16个长度,当后面修改到超过时会自动扩容到(char[].length+ 1) * 2,这就是比String效率高的原因,不用像String一样容量不够就重新构造对象,StringBuilder会自动扩容。2.自定义Strin原创 2017-01-02 13:45:48 · 2788 阅读 · 0 评论 -
String源码详解
1.今天来解析下常用的String类 , 由于源码太多,就解析几个重要的方法。见下面我自己定义的String类代码://final 不可被继承final class MyString { // 真正 存储 字符串的地方 , final 不可变 private final char value[]; // 指定 value 的从哪个位置起 算有效字符. 感觉没啥用 p原创 2017-01-01 20:55:13 · 2567 阅读 · 0 评论