设计模式之结构型模式(三)
适配器模式 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能在一起工作的两个类可以协同工作,别名为包装器(Wrapper)。 类适配器注意: 类适配器需要继承src类,这要求dst必须是接口,有一定的局限性 src类的方法在Adapter中会被暴 ...
阅读更多
设计模式之创建型模式(二)
单例模式采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。 饿汉式静态常量方法demo:12345678910111213 ...
阅读更多
HashMap源码分析
概述​ HashMap基于哈希表的Map接口实现,解决Hash冲突通过拉链法,在JDK 1.8后,底层数据结构从数组+链表转变为数组+链表+红黑树,也就是当出现Hash冲突时,链表长度过长,转为红黑树存储节点提高搜索效率。本文主要分析增删改查接口。 构造方法HashMap共有四个构造方 ...
阅读更多
设计模式之设计原则(一)
简介什么是设计模式? 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心,这样,你就能不必一次又一次地使用该方案而不必重复劳动。 深入理解面向对象向下:三大面向对象机制 封装:隐藏内部实现 继承:复用现有代码 多态:改写对象行为 现上:深刻把握面向对象机制带来的抽象意 ...
阅读更多
深入浅出数据库索引
基本概念数据库系统中文件索引的工作方式非常类似于书的索引。索引的出现就是为了提高数据查询的效率。 例如,为了根据给定ID检索一条student记录,数据库首先会查找索引,找到对应记录的磁盘块,然后取出该磁盘块,得到对应的记录。 有两种基本的索引类型: 顺序索引:基于值得顺序排序 散列索引:基于将值 ...
阅读更多