04 2021 档案
摘要:多线程基础 一个Java程序实际上是一个JVM进程, JVM进程用一个主线程来执行main()方法,在main()方法内部,我们又可以启动多个线程。 此外,JVM还有负责垃圾回收的其他工作线程等。 内存角度:单线程相当于栈空间里的函数压栈、串行运行;多线程是每个线程开辟一个栈空间,CPU给多个线程并
阅读全文
摘要:设计模式的本质是 OOP 面向对象 封装、继承、多态以及类的关联关系+组合关系 架构师 抽象能力 我认为:设计模式只有在重构的时候 与传统方法的对比中,才能清晰体现优势 OOP七大原则 23种设计模式 Design Pattern 七个最常用的设计模式(详细介绍、含源码): Design Patte
阅读全文
摘要:意义:代理类在不改变原有类(也就是被代理类)的情况下,对其功能进行扩展. 分类:静态代理 & 动态代理 应用:AOP 我的Github里有源码,可以clone下来自己跑下:https://github.com/Yang2199/Design-Pattern/tree/master/src 静态代理模
阅读全文
摘要:意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新(广播)。 主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。 优点: 1、观察者和被观察者是抽象耦合的。 2、建立一套触发机制。 缺点: 1、如果一个
阅读全文
摘要:原型模式==》对象的克隆 优点: 克隆对象会将对象已经设置的属性带出来,而不用在new之后去一个个重新设置。 Java 自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加优良。 可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,简化了创建对象的
阅读全文
摘要:定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可创建不同的表示。 使用场景 相同的方法,不同的执行顺序。 要初始化的对象十分复杂,如参数多且都具有默认值。 例子: 组装电脑的配置 肯德基的套餐配置 Java中的StringBuilder ps组合使用:工厂模式建造零件,建造者模式创建复
阅读全文
摘要:工厂作用: 创建者和调用者分离( " 解耦 " ==》开闭原则 ) 可扩展性强 使用场景: FactoryBean ==》IOC 日志门面框架slf4j: private final static Logger logger = LoggerFactory.getLogger(HelloWord.c
阅读全文