摘要:
Dubble扩展点核心类ExtensionLoader Dubbo 的扩展点加载从 JDK 标准的 SPI (Service Provider Interface) 扩展点发现机制加强而来。 Dubbo 改进了 JDK 标准的 SPI 的以下问题: JDK 标准的 SPI 会⼀次性实例化扩展点所有实 阅读全文
摘要:
一、模板方法的使用场景 在软件构建过程中,对某一项任务,它常常有稳定的整体操作结构,但是各个子步骤有很多改变需求,或者由于固有原因(如框架和应用之间的关系)而无法和任务的整体结构同时实现。如何在确定一个稳定操作的前提下,来灵活应对各个子步骤的变化,或者晚期实现需求。 我们先看一个例子: //类库开放 阅读全文
摘要:
一、设计目标 软件系统中,由于应用环境的变化,常常需要将一些现存的对象放到新的环境中,但新环境要求的接口是这些现存对象不能满足的。如何即应用现存对象的良好实现,又能满足新的应用环境所要求的接口?适配器模式就是解决这个问题。 二、模式定义 将类的接口转化为客户希望的另一个接口。适配器模式使得原本接口不 阅读全文
摘要:
一·、依赖倒置原则(DIP) 高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象(稳定)。 抽象(稳定)不应该依赖于实现细节(变化),实现细节(变化)应该依赖于抽象(稳定)。 怎么理解这两句话呢?我们看一个画图的例子。 1 class DrawCircle { 2 3 public 阅读全文
摘要:
一、前言 单例模式在平时的工作中可能就不自觉的用了出来,在面试中也经常会被问起,今天我们就来讲一下单例模式。加深大家对单例模式的理解,让大家在工作中能够用的更加得心应手。 二、什么是单例模式 单例模式是指在在内存中创建且只创建一次对象的设计模式。程序中多次使用同一个对象且作用相同时,为了防止频繁地创 阅读全文
摘要:
一、问题描述 昨天晚上,测试小妹妹突然发现,保存企业信息的时候突然报错,我在查看日志之后,发现在添加企业管理员的时候保存企业和用户关系时执行sql报错,原因是user_name字段保存不了特殊字符,因为使用的是utf-8的编码格式,因此决定设置为utf8mb4编码格式,来存储用户名称。ALTER T 阅读全文
摘要:
一、什么是CAS CAS的全称叫做Compare And Swap,即比较并交换,是一种原子操作,同时CAS是一种乐观机制。在java.util.concurrent包中的很多功能都是建立在CAS之上。如 ReenterLock 内部的 AQS,各种原子类,其底层都用 CAS来实现原子操作。 二、如 阅读全文
摘要:
一、前言 在看JAVA并发包中的源码时,能发现有很多地方使用了volatile关键字声明变量,因此产生了疑问,volatile关键字是什么意思?用它声明的变量与普通的变量有什么不同?这个关键字在什么情况下会用到?带着这些疑问,我查了一些文章和书籍,在此记录一下,希望对大家有所帮助。 二、Volati 阅读全文
摘要:
一、什么是跳跃表 首先先思考一个这个问题,如果给定一个有序数组[1, 3, 5, 7, 9, 11, 13, 15],那么我们怎么能快速的查找到一个元素呢? 我们可以用二分法进行查找,假如我们要查找的是13,首先取数组中间的值7,由于中间元素7小于13,那么接着再取右边的中间元素11,而11小于13 阅读全文
摘要:
一、前言 字典又称作符号表、关联数组或映射,是一种用于保存键值对的数据结构。在字典中,一个键(key)可以和一个值(value)进行关联,这些关联的键和值称之为键值对。字典经常作为一种数据结构被内置在很多的高级语言中,但Redis所使用的C语言并没有内置这种数据结构,因此Redis构建了自己的字典模 阅读全文