![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java设计模式
文章平均质量分 60
来老铁干了这碗代码
算法爱好者 终生学习践行者 雨雪刀霜阻不住 不成大神誓不休
展开
-
深入浅出,对于代理模式的理解(代理模式与外观模式的区别)
从名字入手, 理解为我们生活中的代理商角色即可。场景一:我饿了,去饭店点菜, 我不需要关心菜是怎么做出来的, 只要最后能吃到就好(外观模式)场景二:我是个外地人, 连饭店都不知道在哪,于是找了个当地的代理,叫他帮我去点菜,我无需关心代理是怎么找到饭店,以及怎么点菜的,我只要结果(代理模式)综上, 代理模式相当于更包装化的外观模式, 代理可以调用外观。...原创 2021-11-16 11:50:54 · 541 阅读 · 2 评论 -
享元模式在JDK源码中的应用——Java设计模式系列学习笔记
1. String中的享元模式Java中将String类定义为final(不可改变的),JVM中字符串一般保存在字符串常量池中,java会确保一个字符串在常量池中只有一个拷贝,这个字符串常量池在JDK6.0以前是位于常量池中,位于永久代,而在JDK7.0中,JVM将其从永久代拿出来放置于堆中。我们做一个测试:public class Main { public static void main(String[] args) { String s1 = "hello";原创 2021-11-16 11:23:50 · 680 阅读 · 0 评论 -
单例设计模式详解+源代码+JDK源码应用——Java设计模式系列学习笔记
@toc一. 基本介绍采取一定的方法保证在整个的软件系统中,对某个类智能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate的SessionFactor,他充当数据存储源的代理,并负责创建Session对象。SessionFactor并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactor就够,这时就会使用到单例模式。二. 单例模式的八种方式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒原创 2021-11-15 15:34:21 · 294 阅读 · 1 评论 -
final、static、单例模式与线程安全之间的关系(附单例模式的三种线程安全方式的实现)
final意思是,这个对象的值(基本类型就是值,引用类型是引用地址),不会再被改变与线程安全的关系:final在一定程度上能使某些变量强制变得线程安全static意思是,这个对象是一个全局变量了,你可以在多个地方,多个线程中调用到它,而且调用的是同一个它与线程安全的关系:一般这种的变量很容易造成线程不安全的情况单例模式这首先是一种特殊的需求,就是某个类的实例在JVM中只能存在一个,跟前面的static,线程安全都不一样与线程安全的关系:实现单例需要考虑复杂的多线程的情况,这个东西需要线程安全原创 2021-11-15 15:15:03 · 3294 阅读 · 0 评论