摘要:
虚拟机垃圾收集器 概览 以上是 HotSpot 虚拟机中的 7 个垃圾收集器,连线表示垃圾收集器可以配合使用。 单线程与多线程:单线程指的是垃圾收集器只使用一个线程进行收集,而多线程使用多个线程 串行与并行:串行指的是垃圾收集器与用户程序交替执行,这意味着在执行垃圾收集的时候需要停顿用户程序;并行指 阅读全文
摘要:
虚拟机垃圾算法 脑图 判断一个对象是否可被回收 1. 引用计数算法 给对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数 器减 1。引用计数为 0 的对象可被回收。 两个对象出现循环引用的情况下,此时引用计数器永远不为 0,导致无法对它们进行回收。 正因为循环引用的存在,因此 阅读全文
摘要:
Java内存区域 Java虚拟机在运行时,会把内存空间分为若干个区域:程序计数器、虚拟机栈、本地方法栈、堆内存、方法区。 JDK1.8(含)之后: 1、程序计数器 程序计数器是用来指示执行哪条指令的,每个线程都有一个独立的程序计数器,因此程序计数器是线程私有的一块空间。 由于程序计数器中存储的数据所 阅读全文
摘要:
代理模式 意图 控制对其它对象的访问。 类图 代理有以下四类: 远程代理(Remote Proxy):控制对远程对象(不同地址空间)的访问,它负责将请求及其参数进行编码,并向不同地址空间中的对象发送已经编码的请求 虚拟代理(Virtual Proxy):根据需要创建开销很大的对象,它可以缓存实体的附 阅读全文
摘要:
观察者模式 意图 定义对象之间的一对多依赖,当一个对象状态改变时,它的所有依赖都会收到通知并且自动更新状态。 主题(Subject)是被观察的对象,而其所有依赖者(Observer)称为观察者。 类图 主题(Subject)具有注册和移除观察者、并通知所有观察者的功能,主题是通过维护一张观察者列表来 阅读全文