摘要:
简述:AQS(AbstractQueuedSynchronizer)抽象的队列同步器,其是 JUC 包众多锁机制和信号量机制的基础,例如 ReentrantLock、Semaphore、CountDownLatch、ReadWriteLock、CyclicBarrier 底层的同步互斥操作都建立在 阅读全文
摘要:
一、JAVA 基础 JAVA 的基本类型有哪些? 八个:short、int、long、char、float、double、byte、boolean == 和 equals() 的区别?equals() 和 hashCode() 联系? == : 对于基本类型比较的是值、对于对象比较的是内存地址 eq 阅读全文
摘要:
UML 图: Singleton 单例类,此类只能有一个实例。 Client 使用者,通过 getSingleton() 来得到这个唯一的实例。 简述:在面向对象编程的时候,很多时候会碰到这种情况,例如一个国家只能有一个国王。并且有些公用类,如果每个使用者都创建一个实例来使用那么无疑是一种浪费,让这 阅读全文
摘要:
UML 图: AbstractObject(包括Interface)为抽象类或者接口,包含代理对象需要代理对象帮其实现的接口方法或者抽象方法 ProxyObject 为代理对象,实现了上面的接口或者继承了抽象类,里面包含一个代理对象的引用 RealObject 为被代理对象,它也实现了接口或者实现了 阅读全文
摘要:
0、前言 此文所有讨论基于 HotSpot VM 1、运行时数据区概览 JAVA 中有个 Runtime 类表示了运行时环境(每个 JVM 进程对应唯一的一个 Runtime 对象) 2、多线程和系统线程的对应模型 JAVA 是支持多线程的,学过 OS 就知道,操作系统中内核级别的线程和用户级别的线 阅读全文
摘要:
UML 图: Context 上下文作为操纵策略的主体,里面包含了对策略接口属性 Strategy 为策略接口,不同的策略以不同的方式实现此接口的方法 ConcreteStrategy 为具体策略类 简述:说白了就是主体里面包含一个接口属性,通过向主体传递不同的接口实现类来对主体接口的实现进行替换, 阅读全文
摘要:
1、总览图 总览:(虚线箭头为依赖、虚线空心三角为实现、实线空心三角为继承)关于 UML 图表示可看此链接 Collection: Map: 2、Iterator 、Iterable、ListIterator Iterable 接口: 实现 Iterable 接口的类说明此类是可被迭代的参考此链接 阅读全文
摘要:
0、前言 本文为知识链接汇总,包含各种文章的引用链接 1、如何定义垃圾? 1)引用计数 2)可达性分析 -- 四种 GC Root -- 四种引用类型(强引用、软引用、弱引用、虚引用)及不同引用的垃圾回收策略 2、垃圾收集的算法 1)标记清除 2)复制算法 3)标记压缩/标记整理 4)分代收集 3、 阅读全文
摘要:
1、CAS(compare and swap) CAS 概念:CAS是一种系统原语,能够原子地完成比较和交换两个动作(所谓原语属于操作系统用语范畴。原语由若干条指令组成的,用于完成一定功能的一个过程。primitive or atomic action 是由若干个机器指令构成的完成某种特定功能的一段 阅读全文
摘要:
0、前言 以下都是基于 HotSpot 虚拟机 1、JVM 的整体结构 概览图: 详细图: 运行时数据区详细解释: JDK8 之后把方法区划成了元数据区域,其实元数据+JIT编译产物都可以称作非堆区 2、类的加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、 阅读全文