Java
-
Java反射机制和动态代理详解
反射 概念 反射机制: 指的是可以于运行时加载、探知、使用编译期间完全未知的类。 程序在运行状态中,可以动态加载一个只有名称的类,对于任意一个已加载的类,都能够知道这个类的所有属性…
-
CopyOnWriteArrayList源码分析
总结 总结放前面防止太长不看 CopyOnWriteArrayList是一个线程安全、并且在读操作时无锁的List实现。 CopyOnWriteArrayList内部通过volat…
-
遗留线程安全类Vector和HashTable简要源码分析
总结 总结放前面防止太长不看 Vector Vector就是使用synchronized限制线程安全的一个List实现。 Vector是基于数组实现的,默认初始容量是10,在构造的…
-
阻塞队列BlockingQueue详解
阻塞队列是生产者消费者模式的经典体现。 我们在曾在Java线程池详解中自己实现过一个阻塞队列,这篇文章我们来研究一下JDK中的阻塞队列: BlockingQueue接口主要方法 抛…
-
详解Java中的四种引用及其应用
本文参考资源: 深入理解Java中的引用(一)——Reference - 简书 深入理解Java中的引用(二)——强软弱虚引用 - 简书 深入理解Java中的引用(三)——Dire…
-
ThreadLocal源码分析和相关理解
总结 总结放前面防止太长不看: 每个线程都有一个threadLocals字段,是一个ThreadLocalMap的实例,所有的ThreadLocal代表的线程私有数据都存放在这里面…
-
ConcurrentHashMap源码分析
ConcurrentHashMap的源码比较难读,特别是JDK8中几乎对其进行了重写,设计思想非常优秀,代码量也是非常多,不过我这里算是总结了一些相对重要的部分,仅供参考。 线程安…
-
NIO底层原理-epoll
BIO模型存在三个socket: ServerSocket:专门用来监听是否有来自客户端的连接accept返回的Socket:专门用于处理客户端请求的socketSocket:客户…
-
HashMap源码分析
HashMap是java中非常常见的一个数据结构,在这篇文章里,我依然以Map中的操作为导向来循序渐进研究HashMap中的源码,阅读这篇文章需要的前置知识有: 弱平衡的二叉查找树…
-
JDK8-Stream流库详解
流提供了一种让我们可以在比集合更高的概念级别上指定计算的数据视图。通过使用流,我们可以说明想要完成什么任务,而不是说明如何去实现它。 流的创建 Collection.stream(…