07 2020 档案
摘要:适配器模式 概述 使用适配器类让一个对象获得或拥有另一个对象的行为,单向兼容或者双向兼容(相互兼容)。 适配器模式很好理解,就是让本不兼容的对象,用适配器让他们相互兼容。 话不多说,看代码 我举一个数据线接口的例子: Type-C孔 public class TypeC_Hole { private
阅读全文
摘要:简单工厂模式 假设我们有一个造车厂,可以制造各种车。 Car接口 public interface Car{//通用的产品接口 void show(); } 具体的car车类型 public class QQCar implements Car{ public void show(){ System
阅读全文
摘要:七大原则 开闭原则 软件实体对象(类、模块、方法)对于扩展时开放的,对修改时关闭的。主要强调利用’抽象‘构造框架,利用’实现‘扩展细节功能,提高代码可复用性和可维护性。 单一职责原则 一个类、接口、方法负责一个职责。(高内聚) 但是实际上很难满足完全单一职责原则,在类方法足够少时(逻辑足够简单),可
阅读全文
摘要:单例模式的几种实现 饿汉式: 在类加载时就初始化创建对象,是线程安全的,不管何时使用都会创建,可能会浪费内存,所以称之为饿汉。 public class HungrySingleton { private static HungrySingleton instance = new HungrySin
阅读全文
摘要:谈谈ArrayList与LinkedList的比较 ArrayList ArrayList的数据结构的本质是数组列表,是一段连续的空间(它的扩容机制在此不谈),它支持对元素的快速随机访问(Random Access),即使用了索引遍历,通过ArrayList首位的地址+偏移量(即下标)来查找元素。
阅读全文
摘要:LinkedList简单剖析 数据结构概念 LinkedList的数据结构的本质是双向链表,所以它的占用的内存空间是不连续的,可利用零碎的空间,但查找访问元素的话每次都要遍历节点,效率低。总结来说就是按顺序查找的线性结构,内存空间利用率高。 源码层次 继承抽象类与接口 public class Li
阅读全文
摘要:ArrayList剖析 数据结构概念 ArrayList的数据结构的本质是数组列表,是一段连续的空间,它支持对元素的快速随机访问(Random Access),即使用了索引遍历,通过ArrayList首位的地址+偏移量(即下标)来查找元素。 非线程安全的。 源码层次 继承抽象类与接口 public
阅读全文
摘要:1.缓存穿透 描述:大部分是因为用户的恶意攻击,反复用同样的条件多次请求缓存中与数据库中都没有的不合法的数据。例如查询的id是负数。 解决方案: 方法1:在请求发起后,在逻辑层判断查询条件是否合法 方法2:在redis缓存中存储value为null的值,但该缓存时间不宜过长。 2.缓
阅读全文

浙公网安备 33010602011771号