摘要:正文 一、定义 装饰者模式动态地将责任(功能)附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 要点: 装饰者和被装饰者有相同的超类型。 可以用一个或多个装饰者包装一个对象。 既然装饰者和被装饰者有相同的超类型,所以在任何需要原始对象(被装饰者)的场合,都可以用装饰过的对象代替它。 阅读全文
posted @ 2020-07-13 22:10 惊却一目 阅读(51) 评论(0) 推荐(0) 编辑
摘要:正文 一、定义 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 要点: 观察者模式定义了对象之间一对多的关系。 观察者模式让主题(可观察者)和观察者之间松耦合。 主题对象管理某些数据,当主题内的数据改变时,会以某种形式通知观察者。 观察者 阅读全文
posted @ 2020-07-03 22:40 惊却一目 阅读(131) 评论(0) 推荐(0) 编辑
摘要:正文 一、定义 策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 要点: 策略模式把系统中会变化的部分抽出来封装。 二、实现步骤 1、创建策略接口 /** * 策略接口 */ public interface Strategy { /** * 执行 阅读全文
posted @ 2020-05-27 20:50 惊却一目 阅读(216) 评论(0) 推荐(0) 编辑
摘要:正文 一、Java 内存区域与内存溢出异常 1、运行时数据区域 程序计数器 :当前线程所执行的字节码的行号指示器。线程私有。 Java 虚拟机栈 :Java 方法执行的内存模型。线程私有。 本地方法栈 :Native 方法执行的内存模型。线程私有。 Java 堆 :存放对象实例。分为新生代(Eden 阅读全文
posted @ 2020-04-16 22:16 惊却一目 阅读(405) 评论(0) 推荐(3) 编辑
摘要:正文 一、线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。 1、Java 语言中的线程安全 按线程安全的“安全程度”由强至弱排序,可以将 阅读全文
posted @ 2020-04-07 23:19 惊却一目 阅读(98) 评论(0) 推荐(0) 编辑
摘要:正文 由于计算机的处理器运算速度与它的存储和通信子系统速度的差距太大了,大量的时间都花费在磁盘 I/O、网络通信或者数据库访问上,导致处理器在大部分时间里都处于等待其他资源的状态。因此,为了充分利用计算机的处理器运算能力,现代计算机操作系统采用了多任务处理的方式,即让计算机并发处理多个任务。 对于计 阅读全文
posted @ 2020-04-01 23:21 惊却一目 阅读(128) 评论(0) 推荐(1) 编辑
摘要:正文 在部分商用虚拟机(Sun HotSpot、IBM J9)中,Java 程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运行时,虚拟机会把这些代码编译成本地机器码,并进行各种层次的优化。完成这个任务 阅读全文
posted @ 2020-03-29 22:10 惊却一目 阅读(73) 评论(0) 推荐(0) 编辑
摘要:正文 Java 语言的 3 类编译器: 前端编译器:把 java 文件 转变成 class 文件。例如:Sun 的 Javac。 JIT 编译器(即时编译器):后端运行期编译器,把字节码转变成机器码。例如:HotSpot VM 的 C1、C2 编译器。 AOT 编译器(静态提前编译器):直接把 ja 阅读全文
posted @ 2020-03-22 20:42 惊却一目 阅读(71) 评论(0) 推荐(0) 编辑
摘要:正文 执行引擎是 Java 虚拟机最核心的组成部分之一。在不同的虚拟机实现里,执行引擎在执行 Java 代码时可能会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备。但从外观上看,所有 Java 虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程 阅读全文
posted @ 2020-03-15 23:26 惊却一目 阅读(96) 评论(0) 推荐(0) 编辑
摘要:正文 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制。 一、类加载的时机 1、类的生命周期 加载 连接(验证、准备、解析) 初始化 使用 卸载 加载、验证、准备、初始化和卸载这 5 个阶 阅读全文
posted @ 2020-03-09 22:02 惊却一目 阅读(188) 评论(0) 推荐(0) 编辑