- 博客(9)
- 收藏
- 关注
原创 浑水摸鱼——单例模式
目录创建型——单例模式定义适用场景优点缺点重点code饿汉式——必须掌握,因为它足够简单优点和缺点线程安全性适用场景代码实现懒汉式——写法繁多,分场景看待线程安全的几个懒汉式的写法枚举型写法——最最应该掌握的一种写法!静态内部类写法——最应该掌握的一种写法!双重检查机制——应该掌握的一种写法!源码阅读jdkSpringMybatis创建型——单例模式单例模式是创建型设计模式中写法最最最多的一种(面试官也常问),提起单例模式,我们总会想到有饿汉式,懒汉式,枚举式等等实现方式。这个时候问题来了,我们往往对写
2020-05-24 23:57:37 477 1
原创 一篇搞定ArrayBlockingQueue,你信不信?
ArrayBlockingQueueArrayBlockingQueue 是基于数组的阻塞队列。关于阻塞队列,我们首先应该阅读BlockingQueue接口,在这个接口中可以大致了解阻塞队列都有哪些功能。能更加容易的理解阻塞队列的作用。继承关系Iterable保证有迭代的功能Collection,AbstractCollection说明ArrayBlockQueue也是具有普通集合的功能Queue,AbstractQueue接口更近一步标识它是一个队列,且具有队列的功能Blocking
2020-05-26 00:22:16 442
原创 借尸还魂——原型模式
目录创建型——原型模式定义特点适用场景优点缺点Code业务场景业务分析与模型构建代码示例深克隆,浅克隆——知识拓展代码测试用例源码阅读创建型——原型模式原型模式相对其他创建型的设计模式比较容易。其核心就是克隆方法。Object.clone()定义原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。特点不需要知道任何创建细节,不调用构造函数。适用场景类初始化需要消耗较多的资源new产生的一个对象需要非常繁琐的过程(数据准备,访问权限等)构造函数比较复杂循
2020-05-25 00:06:26 193
原创 树上开花——建造者模式
目录创建型——建造者模式适用场景优点缺点Code业务场景业务分析UML代码最简单的使用建造者模式的方式就是lombok独立编写建造者模式相关源码——兴趣阅读jdkguavaspringmybatis创建型——建造者模式将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示用户只需指定需要创造的类型就可以得到他们,建造过程及细节不需要知道适用场景如果一个对象属性很多(复杂的内部结构),且不易变动。想把复杂对象的创建和使用分离优点封装性好,创建和使用分离扩展性好,建
2020-05-25 00:05:12 221
原创 无中生有——抽象工厂模式
文章目录抽象工厂模式和工厂方法模式的关系抽象工厂模式适用场景优点缺点产品等级结构与产品族Code业务场景模型分析UML代码抽象工厂模式相关源码——兴趣阅读jdk开源框架综述抽象工厂模式和工厂方法模式的关系抽象工厂模式是工厂方法模式的一个进阶。进阶在哪里?进阶在产品和产品族的”族“。工厂方法模式旨在减少重复的创建对象代码,将创建对象这个任务交给具体的工厂。同时在上一篇工厂方法模式中,有谈到过它的弊端:对应每一种频繁创建的产品(对象)都需要创建一个工厂,那么每增加一个产品,就会至少增加2个类(一个
2020-05-23 22:58:38 279
原创 以逸待劳——工厂方法模式
创建型——工厂方法模式设计模式的学习创建对象的一般方式弊端分析往后进一步,就是工厂方法模式工厂方法模式适用场景优点缺点Coding业务场景业务分析模型抽象UML编码相关源码jdk中的体现CollectionURLStreamHandlerFactorylogback的体现综述设计模式的学习 学习设计模式,最最最核心的一点就是,模式的适用场景,如果脱离的业务场景,或者适用场景,为了模式而模式,那…反而对自己原有的编码习惯造成巨大冲击,最后只能是走火入魔了。 对于工厂方法模式,我们可以先回想平常编码中
2020-05-23 17:24:20 247
原创 LinkedBlockingQueue源码解析
LinkedBlockingQueueLinkedBlockingQueue继承关系源码解析LinkedBlockingQueue继承关系源码解析重要的功能实现.如果不愿意阅读源码,那么纯文字的描述其实永远都讲不清楚,因为没有亲自去里面逛一圈,只是从表面划过,何谈印象深刻?package java.util.concurrent;import java.util.concu...
2020-04-30 19:52:04 139
原创 JVM知识串联
那些年记不住的java虚拟机那些年记不住的java虚拟机写在前面“好看”的皮囊千篇一律——那几年初学javaJava的特点Java是如何运行起来的“有趣”的灵魂万里挑一——这几天再瞅java特点的本质跨平台自动内存管理jvm内存结构划分垃圾收集器从java的运行角度来理解虚拟机编译前端编译器后端编译器加载执行引擎那些年记不住的java虚拟机那些年,我们记不住的jvm。就像那会儿一起背的英文单...
2020-03-29 00:26:37 233 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人