随笔分类 -  java

摘要:Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文旨在从ReentrantLock详解AQS原理源码解析 阅读全文
posted @ 2020-08-19 00:51 NeverTh 阅读(425) 评论(0) 推荐(0)
摘要:Java线程池ThreadPoolExecutor面试总结思维导图速记,优点降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度,当任务到达时,可以不需要等待线程创建就能立即执行。提高线程的可管理性类关系接 Executor 一个无返回值的execute方法接 ExecutorService 返回值为Future类型的submit方法类 AbstractExecutorService类 ThreadPoolExecutor 阅读全文
posted @ 2020-07-27 23:52 NeverTh 阅读(809) 评论(0) 推荐(4)
摘要:良心制作,JVM原理速记复习Java虚拟机总结思维导图面试必备。 一、运行时数据区域 线程私有 程序计数器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是Native方法则为空),是唯一一个没有规定OOM(OutOfMemoryError)的区域。 Java虚拟机栈 每个Java方法在执行的同时会创建一个栈桢用于存储局部变量表、操作数栈、动态链接、方法出口等信息。从方法调用直到执行完成的过程,对应着一个栈桢在Java虚拟机栈中入栈和出栈的过程。(局部变量包含基本数据类型、对象引用referenc 阅读全文
posted @ 2019-11-16 22:44 NeverTh 阅读(1276) 评论(0) 推荐(4)
摘要:ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类。 ArrayList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问,实现了Cloneable接口,能被克隆。 阅读全文
posted @ 2019-11-03 13:59 NeverTh 阅读(2357) 评论(0) 推荐(2)
摘要:在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,可能会将链表转换为红黑树,这样大大减少了查找时间。 阅读全文
posted @ 2019-11-02 13:36 NeverTh 阅读(627) 评论(0) 推荐(0)