命令模式 637 次访问 2019-07-06 命令模式将一个请求封装成一个对象,解耦调用操作的对象与接收命令的对象,该模式可以支持请求排队并方便的记录请求日志,以及支持可撤销的操作 结构 参与者 Command(具体执行操作都必须实现的接口) 命令对象实现这个接口 调用接受者响应的操作,以实现execute方法 Client(发起 Read More
初探HBase 235 次访问 2019-06-17 HBase是一个基于HDFS文件系统的分布式NO-SQL数据库,比起RDBMS,它的特点是高可靠性、高性能、面向列、可伸缩,且能够在廉价硬件构成的集群上管理超大规模的稀疏表。 粒度 HBase表(table)中纵向的最基本的单位是列(qualifier),多个列组成一个列族(family),横向的最 Read More
JVM GC策略 238 次访问 2019-06-02 在JVM内存区域中,虚拟机栈,本地方法栈,程序计数器的生命周期和线程绑定,栈中栈帧的数据结构和大小都是确定的,在出栈后即可被回收,因此在这三个区域中不需要太多考虑垃圾收集的问题,GC关注的区域主要集中在堆内存和方法区中,尤其是堆内存,是GC发生最频繁也是最关键的区域,想要指定一个好的垃圾收集策略主要 Read More
装饰模式 230 次访问 2019-05-22 装饰模式动态地给一个对象添加一些额外的职责。单从增加功能的角度来说,装饰模式相比生成子类更为灵活 结构 参与者 Component(可动态添加职责的对象接口) — 装饰器和被装饰对象都需要实现这个接口 ConcreteComponent(被添加职责的具体对象) — 被添加职责的方法主要是C Read More
JWT 243 次访问 2019-05-17 JSON WEB Token,是一种基于JSON的、用于在网络上声明某种主张的令牌(token)。JWT通常由三部分组成: 头信息(header), 消息体(payload)和签名(signature),token通常放在Authorization header中 结构 JSON Web Token Read More
深入Java内存方法区 222 次访问 2019-04-20 Java内存的方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。本章深入了解下这些个部分是什么。 ClassLoader加载class文件和存储文件信息的流程 当一个classLoder启动的时候,classLoader的生存地点在jvm中的堆 Read More
Dockerfile 237 次访问 2019-04-13 Dockerfile是由一系列基于DSL语法的指令构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像,使用docker build命令可以通过一份Dockerfile构建一个新的镜像 Dockerfile语法 注释由#开头注释单行 # commenting line 命令comma Read More
深入Java内存虚拟机栈 262 次访问 2019-04-11 在JAVA内存区域中提到虚拟机栈,每个java方法在执行时,会创建一个“栈帧(stack frame)”,每个栈帧存储局部变量表,操作栈,动态链接,方法出口几个部分,本章深入了解下这些个部分是什么,它们如何合作帮助方法执行完成。 局部变量表 局部变量表是一组变量值存储空间,用以存储方法参数与方法内 Read More
JAVA内存区域 230 次访问 2019-04-02 大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区),Heap(堆),Program Counter Register(程序计数器), VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的),Native Method Stack (本地方法栈) 其中Me Read More
观察者模式 239 次访问 2019-03-27 观察者模式定义了对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 结构 参与者 Subject(目标) — 目标知道它的观察者。可以有任意多个观察者观察同一个目标 — 提供注册和删除观察者对象的接口 Observer(观察者) — 为那些在 Read More