2020年4月24日
摘要: 一、判断对象是否需要被回收 1、可达性分析算法的实现 ① 根节点枚举 ② 安全点 ③ 安全区域 ④ 记忆集与卡表 ⑤ 写屏障 ⑥ 并发的可达性分析 二、经典的垃圾收集器(内存回收算法对应) Serial、ParNew、Parallel Scavenge、 Serial Old、Parallel Ol 阅读全文
posted @ 2020-04-24 21:00 FFStayF 阅读(250) 评论(0) 推荐(0) 编辑
  2020年4月22日
摘要: 对象的创建及内存分配后,接下来就是对象的回收了——垃圾收集器GC 一、GC回收的内存区域 线程私有:程序计数器、虚拟机栈、本地方法栈,都是线程私用的,基本可以在编译期固定大小,在线程或方法执行结束后回收,具备了确定性。 线程共享:Java堆、方法区,由于是线程共享的,无法根据线程来判断内存何时回收, 阅读全文
posted @ 2020-04-22 18:27 FFStayF 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 一、对象的创建过程 当虚拟机遇到一条字节码new指令时, ① 检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已被加载、解析、初始化过,如果没有,需要先执行类加载过程。 ② 类加载之后,虚拟机会为新生对象分配内存。对象所需内存的大小在类加载完成后便可以完全确定 阅读全文
posted @ 2020-04-22 01:54 FFStayF 阅读(173) 评论(0) 推荐(0) 编辑
  2020年4月21日
摘要: 《深入理解Java虚拟机》出第三版了,工作一年多的时候看过第二版,重新复习一遍JVM 一、内存分配 JVM管理的内存包括5个运行时数据区域。 线程私有:程序计数器,虚拟机栈,本地方法栈 线程共享:堆,方法区 1、程序计数器PC ①程序计数器的作用 JVM中程序计数器是一块很小的内存空间,它可以看做是 阅读全文
posted @ 2020-04-21 19:20 FFStayF 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 一、定义与简单实现 1、定义 状态模式,是一种行为型模式,允许对象在内部状态改变时改变它的行为。 2、UML图 状态模式的UML类图与策略模式的UML类图一模一样,维基百科上也称状态模式可解释成策略模式,两者都定义算法族,分别封装起来,让它们之间可以互相替换,使得程序更具有弹性 但两种模式区别就在于 阅读全文
posted @ 2020-04-21 01:53 FFStayF 阅读(448) 评论(0) 推荐(0) 编辑
  2020年4月15日
摘要: 一、定义 1、定义 创建一个命令对象来代表实际行动。命令对象可以把行动(action) 及其参数封装起来,于是这些行动可以被: 重复多次 取消 取消后又再重做 这些都是现代大型应用程序所必须的功能,即“撤销”及“重复”。除此之外,可以用命令模式来实现的功能例子还有: 交易行为 进度列 向导 用户界面 阅读全文
posted @ 2020-04-15 20:08 FFStayF 阅读(339) 评论(0) 推荐(0) 编辑
  2020年4月14日
摘要: 一、定义 1、定义 外观模式又译为门面模式, 定义一个统一的外观接口,接口中封装了一系列操作,最少知道原则,降低了客户与一系列操作类之间的耦合。 2、UML类图 外观模式与适配器模式有相似的地方,但是外观模式注重的是一组接口的封装,而适配器模式注重的是接口之间的转换(适配) 外观模式一个重要的设计模 阅读全文
posted @ 2020-04-14 17:58 FFStayF 阅读(306) 评论(0) 推荐(0) 编辑
  2020年4月13日
摘要: 适配器模式可能是平常项目中用的最多的设计模式,是一个很简单的设计模式。 一、定义与代码实现 1、定义 将某个类的接口转换成客户端期望的另一个接口。 适配器模式可以消除由于接口不匹配所造成的类兼容性问题。 2、UML类图 在调用远程接口时,适配器模式是非常有用的,当远程接口变化时,可以建立一个适配器来 阅读全文
posted @ 2020-04-13 18:47 FFStayF 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 一、定义与简单实现 1、定义 模板方法是一个定义在父类中的方法, 在模板方法中会顺序调用多个定义在父类中的其他方法,而这些方法有可能只是抽象方法, 模板方法保证了抽象方法的执行顺序,这些抽象方法由子类实现,并且子类不允许覆写模板方法。 2、UML类图 模板方法模式与工厂方法模式的UML类图实现都是父 阅读全文
posted @ 2020-04-13 15:56 FFStayF 阅读(388) 评论(0) 推荐(0) 编辑
  2020年4月3日
摘要: 建造者模式又名生成器模式,可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 使用场景:类的实例属性过多时,构造方法可能会很多;虽然我们可以用JavaBean的setter方法进行设置,但生成的对象状态可能不一致,导致对象不可用。最常见的:只 阅读全文
posted @ 2020-04-03 16:05 FFStayF 阅读(201) 评论(0) 推荐(0) 编辑