Administrator

Administrator

精讲设计模式【观察者设计模式】

观察者模式什么是观察者模式当一个对象,发生改变的时候,通知给其他对象在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。观察者模式应用场景Zookeeper事件通知

精讲设计模式【装饰者设计模式】

回顾多级缓存基本概念在实际开发项目,为了减少数据库的访问压力,我们都会将数据缓存到内存中比如:Redis(分布式缓存)、EHCHE(JVM内置缓存).例如在早起中,项目比较小可能不会使用Redis做为缓存,使用JVM内置的缓存框架,项目比较大的时候开始采用Redis分布式缓存框架,这时候需要设计一级

精讲设计模式【模版方法设计模式】

什么是模版方法1.定义了一个操作中的算法的骨架,而将部分步骤的实现在子类中完成。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2.模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术,没有关联关系。 因此,在模板方法模式的类结构图中,只有继承关

精讲设计模式【责任链模式】

什么是责任链模式客户端发出一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象。这样就实现了请求者和接受者之间的解耦,并且在客户端可以实现动态的组合职责链。使编程更有灵活性。定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条

精讲设计模式【策略模式】

什么是策略模式策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,最终可以实现解决多重if判断问题。1.环境(Context)角色:持有一个Strategy的引用。2.抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体

ArrayList源码解读[面试专题](集合相关)

ArrayLis源码解读 扩容以及缩容存放元素:有序线程是否安全:不安全数据结构:给予数组实现。package com.gtf.xc;import java.util.ArrayList;import java.util.Arrays;public class MyArrayList<T&gt

ConcurrentHashMap源码解读[面试专题](集合相关)

JDK1.7ConcurrentHashMap源码解读使用传统HashTable保证线程问题,是采用synchronized锁将整个HashTable中的数组锁住,在多个线程中只允许一个线程访问Put或者Get,效率非常低,但是能够保证线程安全问题。Jdk官方不推荐在多线程的情况下使用HashTaba