自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 设计模式 - 动态代理原理及模仿JDK Proxy 写一个属于自己的动态代理

本篇文章代码内容较多,讲的可能会有些粗糙,大家可以选择性阅读。 本篇文章的目的是简单的分析动态代理的原理及模仿JDK Proxy手写一个动态代理以及对几种代理做一个总结。 对于代理模式的介绍和讲解,网上已经有很多优质的文章,我这里就不会再过多的介绍了,这里推荐几篇优质的文章作为参考: 给女朋友讲解什么是代理模式 轻松学,Java 中的代理模式及动态代理 另外,我的 github 仓...

2019-10-15 09:05:53 1004

原创 设计模式 - 单例模式之多线程调试与破坏单例

前言 在之前的 设计模式 - 单例模式(详解)看看和你理解的是否一样? 一文中,我们提到了通过Idea 开发工具进行多线程调试、单例模式的暴力破坏的问题;由于篇幅原因,现在单独开一篇文章进行演示:线程不安全的单例在多线程情况下为何被创建多个、如何破坏单例。 如果还不知道如何使用IDEA工具进行线程模式的调试,请先阅读我之前发的一篇文章: 你不知道的 IDEA Debug调试小技巧 一、线程不安...

2019-10-10 09:27:40 300

原创 你不知道的 IDEA Debug调试小技巧

一、多线程调试断点 Intellij IDEA 的debug断点调试是有一个模式的选择的,就像下面这张图,平时我们都使用的是默认的 ALL(在Eclipse中默认是线程模式) ,这种模式我们只能将一个线程断下来,但其他线程却已经执行过了;而将其改为 Thread 后,就可以多个线程都断下来,并且可以很方便的切换线程的执行流程,这就是多线程调试。 在debug控制台能够很方便的查看线程的执行状态,...

2019-10-10 09:23:08 268

原创 GmSSL 与 OpenSSL 共存的安装方法

GmSSL 与 OpenSSL 共存的安装方法安装 OpenSSL安装 GmSSL下载解压编译安装添加环境变量查看版本信息 安装 OpenSSL 安装 OpenSSL 按照基本的安装方法(yum、apt 等)安装就好了,网上也有很多高版本的安装方法,这里就不做探讨了,一搜一大把 安装 GmSSL 要点就在于 no-shared :只编译静态库 下载解压 # 下载 gmssl wget https://github.com/guanzhi/GmSSL/archive/master.zip # 解压 u

2020-12-16 11:02:31 940 4

原创 设计模式 - 策略模式

在理解策略模式之前我们假设有这样一个需求场景:我们在写订单支付场景的代码时,客户可以选择多种支付方式,有银联支付、支付宝支付、微信支付、京东白条等等。然后我们就很可能就会编写出类似下面这样的代码: /** * 订单类,拥有一个支付方法 * * @author eamon.zhang * @date 2019-11-06 上午9:18 */ public class Order { ...

2019-11-07 08:49:01 947

原创 设计模式 - 委派模式

理解 首先委派模式不属于23种设计模式。 所谓委派,个人理解是:将为达到最终结果的事情交给其他人或中间人来干,我只要最终结果,其他的事情,由我委派的人来安排。 更直白的表达就是,比如,我们想要盖一栋楼房,盖完之后我要刷漆,这些事情我自己肯定不能做,所以我这时候就会去找一个“包工头”来帮我完成这件事情,我只要告诉“包工头”我要盖房子、我要给房子刷漆等命令,其他的事情我不管,最终能够交付给我这个刷完漆...

2019-10-28 09:51:59 880

原创 设计模式 - 单例模式(详解)看看和你理解的是否一样?

一、概述 单例模式是设计模式中相对简单且非常常见的一种设计模式,但是同时也是非常经典的高频面试题,相信还是有很多人在面试时会挂在这里。本篇文章主要针对单例模式做一个回顾,记录单例模式的应用场景、常见写法、针对线程安全进行调试(看得见的线程)以及总结。相信大家看完这篇文章之后,对单例模式有一个非常深刻的认识。 文章中按照常见的单例模式的写法,由浅入深进行讲解记录;以及指出该写法的不足,从而进行演进改...

2019-10-10 09:22:36 112

原创 设计模式 - 工厂模式

概述 我们都知道Java中共有 23 种设计模式,其中工厂模式分为三种,即:简单工厂模式(不在 23 种设计模式之列)、工厂方法模式和抽象工厂模式;我们平时说的工厂模式,其实大都指工厂方法模式,这种模式是我们平时编码中用的频率最高的一种,在Spring源码中就有很多工厂模式的应用,比如 BeanFactory。 下面依次按照简单工厂模式、工厂方法模式、抽象工厂模式的顺序,依次由浅入深说说这三种...

2019-10-10 09:21:59 179

原创 设计模式 - 导读

发布说明 其实不用设计模式并非不可以,但是用好设计模式能帮助我们更好地解决实际问题。 设计模式天天都在用,但自己却无感知。 本系列文章,初衷是为了记录日常经常使用的设计模式,也给学习设计模式的同学们提供参考和查阅。 文章内容有自己的理解,也有参考网络,如有侵犯,请告知删除。 学习设计模式的重要性 设计模式最重要的是解耦。 学习设计模式是如何总结经验的,把经验为自己所用。 学设计模式也是锻炼将业务需...

2019-10-10 09:21:29 106

原创 设计模式 - 七大设计原则(四)- 合成复用原则与设计原则总结

概述 简单介绍一下七大设计原则: 开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体 单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化 接口隔离原则:使用多个专门的接口,而不是使用一个总接口 迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),不和陌生人说话,控制好访问修饰符 里氏替换原则:子类可...

2019-10-10 09:20:56 124

原创 设计模式 - 七大设计原则(三)- 迪米特法则与里氏替换原则

概述 简单介绍一下七大设计原则: 开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体 单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化 接口隔离原则:使用多个专门的接口,而不是使用一个总接口 迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),不和陌生人说话,控制好访问修饰符 里氏替换原则:子类可...

2019-10-10 09:20:18 224

原创 设计模式 - 七大设计原则(二)

概述 简单介绍一下七大设计原则: 开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体 单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化 接口隔离原则:使用多个专门的接口,而不是使用一个总接口 迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),不和陌生人说话,控制好访问修饰符 里氏替换原则:子类可以扩...

2019-10-10 09:19:34 88

原创 设计模式 - 七大设计原则(一)

概述 简单介绍一下七大设计原则: 开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体 单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化 接口隔离原则:使用多个专门的接口,而不是使用一个总接口 迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),不和陌生人说话,控制好访问修饰符 里氏替换原则:子类可以扩...

2019-10-10 09:18:57 120

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除