代码改变世界

桥接模式

2019-03-07 15:13 by 剑动情缥缈, 192 阅读, 0 推荐, 收藏, 编辑
摘要:1.基本概念 将抽象化与实现化解耦 UML 2.代码实现 package com.chengjie; interface DrawAPI { void drawCircle(int radius, int x, int y); } class RedCircle implements DrawAPI 阅读全文

深入理解Java虚拟机6-chap8-9-斗者3星

2019-03-06 21:03 by 剑动情缥缈, 237 阅读, 0 推荐, 收藏, 编辑
摘要:一、虚拟机字节码执行引擎 1.虚拟机执行引擎由自己实现,所以可以自行制定指令集与执行引擎的体系结构,并且可以执行那些不被硬件直接支持的指令集格式。 2.执行引擎 编译执行:通过JIT编译器产生本地代码执行 解释执行:通过解释器解释执行 二、运行时栈帧结构 栈帧存储了方法的局部变量表、操作数栈、动态连 阅读全文

原型模式

2019-03-06 14:51 by 剑动情缥缈, 189 阅读, 0 推荐, 收藏, 编辑
摘要:1.基本概念 原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的对象,就不再需要关心这个实例本身的类型,只要实现了克隆自身的方法,就可以通过这个方法来获取新的对象,而无须再去通过new来创建。 角色 1)客户(Clie 阅读全文

观察者模式

2019-03-06 10:16 by 剑动情缥缈, 169 阅读, 0 推荐, 收藏, 编辑
摘要:1.概念 定义了一种一对多的依赖关系,让多个观察者可以监控一个主题对象,当主题对象发生改变,会通知所有的观察者,让他们能够自动更新自己 UML 角色 1)抽象主题(Subject)角色:抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList)里,每个主题都可以有任何数量的观察者。 阅读全文

深入理解Java虚拟机5-chap7-斗者2星

2019-03-05 21:11 by 剑动情缥缈, 155 阅读, 0 推荐, 收藏, 编辑
摘要:一、类加载机制 1.类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Class文件加载到内存,这就是类加载机制。 2.类型的加载、连接和初始化过程发生在运行期。 3.Java动态扩展:依赖运行期动态加载与动态连接。 4.本 阅读全文

命令模式

2019-03-05 17:22 by 剑动情缥缈, 241 阅读, 0 推荐, 收藏, 编辑
摘要:一.基本概念 1.五种角色 客户端(Client)角色:创建一个具体命令(ConcreteCommand)对象并确定其接收者。 命令(Command)角色:声明了一个给所有具体命令类的抽象接口。 具体命令(ConcreteCommand)角色:定义一个接收者和行为之间的弱耦合;实现execute() 阅读全文

深入理解Java虚拟机4-chap6-斗者1星

2019-03-04 21:15 by 剑动情缥缈, 283 阅读, 0 推荐, 收藏, 编辑
摘要:一、JVM语言无关性 1.以字节码为基础(Class文件为一组以8位字节为基础单位的二进制流),JVM与Class文件关联,而非与Java语言关联 2.代码编译从本地码(Native Code)转为字节码:本地机器码,依赖于OS,不具备跨平台特性 二、Class文件 Class文件中只有两种数据类型 阅读全文

责任链模式

2019-03-04 15:45 by 剑动情缥缈, 215 阅读, 0 推荐, 收藏, 编辑
摘要:1.基本概念 为请求创建一个处理链,将请求发送者与接收者进行解耦 每个接收者通常包含另一个接收者的引用,根据逻辑,可以将请求转发给下一个接收者处理 目的:避免请求发送者与接收者耦合在一起,让多个对象都有可能处理请求,这些对象形成一条链,沿着这条链处理请求 责任链上的处理者负责处理请求,客户只需要将请 阅读全文

深入理解Java虚拟机3-chap4-5-斗之气10段

2019-03-03 11:36 by 剑动情缥缈, 403 阅读, 0 推荐, 收藏, 编辑
摘要:一、虚拟机性能监控与故障处理 1.JDK的命令行工具:对jdk/lib/tools.jar的薄包装,Linux下可能是Shell编写,执行类似于Linux中的命令 2.可视化工具JConsole 打开后连接本地进程,即可进入对应监控台 概述 内存:可选择各个分区 线程 类 VM概要:可看到启动参数等 阅读全文

深入理解Java虚拟机1-chap1-2-斗之气8段

2019-03-02 17:22 by 剑动情缥缈, 200 阅读, 0 推荐, 收藏, 编辑
摘要:1.HotSpot VM:热点代码探测能力,与JIT技术共同进行编译优化,输出高质量代码 2.运行时数据区域 程序计数器:控制程序执行顺序,无OOM Java虚拟机栈:生命周期与线程一致,描述Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧(Stack Frame)用于存储 局部变量 阅读全文