jdk源码简单学习
_heng_
这个作者很懒,什么都没留下…
展开
-
LinkedList学习
主要成员变量//链表的大小transient int size = 0;//头节点transient Node<E> first;//尾结点transient Node<E> last;//Node结点private static class Node<E> {E item; //元素Node<E> next;...原创 2019-11-20 09:00:16 · 166 阅读 · 0 评论 -
ArrayList的学习
主要的成员变量//构造函数使用 ArrayList array=new ArrayList(0)的时候将数组赋值为EMPTY_ELEMENTDATAprivate static final Object[] EMPTY_ELEMENTDATA = {};//构造函数使用 ArrayList array=new ArrayList()的时候将数组赋值//为DEFAULTCAPACIT...原创 2019-11-14 09:04:02 · 124 阅读 · 0 评论 -
String和StringBuffer的区别
String是不可变的,StringBuffer是可变的。String s = "123";System.out.println("s = " + s);s="456";System.out.println("s = " + s);运行结果:s = 123s = 456初学者看到这段代码,都觉得 String 明明是可变的嘛,下面放一张图解释一下:s="123"原创 2017-08-17 08:21:01 · 303 阅读 · 0 评论 -
AQS(AbstractQueuedSynchronizer)初学
ReentrantLock(可重入锁),CountDownLatch(闭包),ReentrantReadWriteLock等内部都是基于AQS实现的,所以有必要学习一下AQS的实现原理:多线程通过volatile int state(共享资源)的状态来判断是否获取到资源,没获取的线程进入队列,等待被释放资源的线程唤醒。主要分为独占锁(一个线程获取到资源以后其它线程无法获取资源)和共享锁两种方式(一...原创 2018-01-11 10:56:54 · 337 阅读 · 0 评论 -
java ReentrantLock(可重入锁)初学
学习ReentrantLock,需要先学习AQS同步器的知识非公平锁:不一定是完全按照先来先得的顺序来获取资源公平锁:绝对按照先来先得的顺序获取资源public class ReentrantLock implements Lock, java.io.Serializable {private static final long serialVersionUID = 7373984原创 2018-01-29 09:08:08 · 367 阅读 · 0 评论 -
AQS的ConditionObject
Condition接口主要方法:void await() throws InterruptedException;//相当于 Object.wait();void signal();//相当于Object.notify();void signalAll();//相当于Object.notifyAll();public class ConditionObject implements Conditi...原创 2018-04-19 09:02:41 · 308 阅读 · 0 评论 -
ReentrantLock简单图解学习
写这篇文章是让自己对AQS和ReentrantLock加深理解,需要配合之前的文章一起学习。AQS(AbstractQueuedSynchronizer)初学java ReentrantLock(可重入锁)初学假设有3个线程A、B、C都调用lock.lock()方法获取锁,ReentrantLock 默认的构造方法调用的是非公平锁public ReentrantLock() { sy...原创 2018-04-29 09:42:05 · 1268 阅读 · 0 评论 -
java HashMap的原理
摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口...转载 2018-05-31 20:24:12 · 226 阅读 · 0 评论