- 博客(5)
- 收藏
- 关注
原创 JVM内存模型详解 - JDK1.8
JVM内存模型详解 - JDK1.8 JVM内存模型主要如上图所示 线程 线程私有 程序计数器 虚拟机栈 本地方法栈 线程共享 堆 元数据区 直接内存 程序计数器 线程私有,指向当前线程正在执行的字节码的行号。 虚拟机栈 ...
2020-09-04 09:45:29
345
原创 SingletonPattern 单例模式
使用单例的场景: 一个全局使用的类频繁地创建与销毁。 使用单例的原因: 想控制实例数目,节省系统资源 原理: 判断是否已经有这个单例,如果有则返回,如果没有则创建。 构造函数是私有的。 /** *双检查锁,这样即提高了执行效率,同时也保证了线程安全; *但是有一个严重的reorder(指令重排)问题 *在下面的代码中,看似很美好,先判断是不是存在这个实例,如果不存在,则加锁。 *但是,在Java编译器中,实例化过程中,我们认为顺序是这样的:1.先分配内存。2.调用构造器。3.把内..
2020-07-27 17:37:49
102
原创 设计模式--Strategy(策略模式)
上一篇:设计模式–TemplateMethod(模板方法) 类别:组件协作 作用:在运行时根据需要透明地更改对象的算法。将对象与算法解耦。 模式定义:定义一系列算法,把他们封装起来,并且使他们可以互相替换。该模式使得算法可以独立于客户程序而变化(扩展,子类化 )。 策略模式的优点: 算法可以自由切换; 避免使用多重条件判断; 扩展性良好。 策略模式的缺点: 策略类会增多 所有策略类都需要对外暴露。 使用场景: 1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使
2020-07-07 11:07:48
80
原创 设计模式--TemplateMethod(模板方法)
类别:组件协作(晚绑定) 场景:整体结构稳定,但是子步骤有很多改变 模式定义: * 定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某些特定步骤。 public abstract class AbsClass{ //基本方法 protected abstract void doSomething(); protected abstract.
2020-07-03 16:43:36
83
原创 设计模式--设计原则及模式分类
对系统,对模块有一个新的认知。“寻找变化点(需求频繁变化),然后在变化点用什么设计模式”“什么时候,什么地点应用设计模式”书籍推荐:重构与模式 重构-改善现有的代码结构>面向对象设计原则(DIP) 高层模块(稳定)不应该依赖于低层(变化),二者都应该依赖于抽象(稳定)。 抽象(稳定)不应该啊依赖于实现细节(变化),实现细节应该依赖于抽象。 开放封闭原则(OCP) 对扩展开放,对更改封闭。 类模块应该是可扩展的,但是不可修改。 单一职责原则(SRP).
2020-07-02 17:10:17
106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人