摘要: 策略模式采用组合的形式,封装不同的算法族,让算法之间可以相互替换,并让算法的变化独立于使用算法的客户。 阅读全文
posted @ 2019-09-15 16:34 纳兰小依 阅读(371) 评论(0) 推荐(1) 编辑
摘要: 适配器模式提供了将一种对象转换成另一种对象的能力,利用它可以实现两个不兼容接口的协调工作。外观模式是封装对象内的复杂逻辑,对外提供一个简化的接口。 1. 适配器模式 生活中最常见的适配器的使用场景就是各种转换线和转换插头,例如投影仪到电脑之间的转换线,港版iPhone和国内插座之间的转换插头等。下面 阅读全文
posted @ 2019-09-14 02:01 纳兰小依 阅读(856) 评论(0) 推荐(1) 编辑
摘要: 最近在啃设计模式,这篇文章是设计模式的第一篇,希望可以一直写下去。 工厂模式和抽象工厂模式都属于创建型模式,是用来创建对象的。程序中将创建对象的操作(例如各种new)抽离到单独的接口中,由接口的子类来完成对象的创建工作,从而实现对象的创建与业务逻辑解耦的目的。这里所说的接口,既包括interface 阅读全文
posted @ 2019-09-08 19:04 纳兰小依 阅读(1106) 评论(0) 推荐(0) 编辑
摘要: 在这里整理一下目前一些常见的排序算法和一些个人理解,可能会存在一定的错误,后续发现后会立即更正。 所涉及到的算法包括:冒泡排序、选择排序、插入排序、希尔排序、快速排序(递归和非递归版本)、堆排序、归并排序、桶排序、基数排序、计数排序。 一些理解: 快速排序和归并排序都是基于分治的思想,区别在于快速排 阅读全文
posted @ 2019-05-02 23:38 纳兰小依 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 我经常会思考一个问题,就是自己为什么要写博客呢? 很多时候,我写的东西已经有人写过,而且比我写得更好,在这种情况下,我是否还需要把这些东西再写一遍呢?万一有一些知识点我没有理解透彻,写的博客不严谨,岂不是会误导其他人? 最近我想明白了这个问题,所以决定把自己的想法记录下来,时时提醒自己。 首先,博客 阅读全文
posted @ 2018-06-17 14:27 纳兰小依 阅读(158) 评论(0) 推荐(2) 编辑
摘要: 对基本类型的变量进行拷贝非常简单,直接赋值给另外一个对象即可: 对于引用类型的变量(例如 String),情况稍微复杂一些,因为直接等号赋值只是复制了一份引用,而复制前后的两个引用指向的是内存中的同一个对象。 要想实现引用类型的拷贝,可以通过实现 Cloneable 接口,并覆盖其中的 clone 阅读全文
posted @ 2018-06-17 13:37 纳兰小依 阅读(2267) 评论(0) 推荐(0) 编辑
摘要: 单例模式可以使得一个类只有一个对象实例,能够减少频繁创建对象的时间和空间开销。单线程模式下一个典型的单例模式代码如下: ① 构造器私有使得外界无法通过构造器实例化Singleton类,要取得实例只能通过getInstance()方法。这是一个延迟加载的版本,即在需要对象的时候才进行实例化操作。该方法 阅读全文
posted @ 2017-09-07 23:59 纳兰小依 阅读(12853) 评论(0) 推荐(3) 编辑
摘要: 当数据库记录达到一定规模时,常规的查询将会耗费非常多的时间,这对于瞬时性能要求较高的系统来说是无法接受的。为了提高查询的速度,人们设计了索引来辅助查询。在查询的时间消耗上,主要包括内存操作耗时和磁盘IO耗时,而内存操作比磁盘IO操作效率高得多,因而磁盘物理记录的检索占用了绝大部分的查询时间。根据磁盘 阅读全文
posted @ 2017-08-26 00:36 纳兰小依 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1.基本定义 首先,红黑树是一种特殊的二叉查找树(Binary Search Tree,也叫二叉搜索树)。一个BST是指:它是一颗空树,或者满足左子树(如果有)所有节点的值均小于根节点,右子树(如果有)所有节点的值都大于根节点,且左右子树均是二叉搜索树,这是一个递归定义。从BST的定义可以看出,其中 阅读全文
posted @ 2017-04-26 00:13 纳兰小依 阅读(313) 评论(0) 推荐(0) 编辑
摘要: Spring和Mybatis的整合,主要借助于Spring的依赖注入和控制反转来简化Mybatis的配置,使用两个配置文件【注:此种配置文件网上已经有很多】: spring.xml: 配置很简单,先使用<context:property-placeholder/>标签引入外部资源文件,再采用包扫描的 阅读全文
posted @ 2016-08-20 16:19 纳兰小依 阅读(283) 评论(0) 推荐(0) 编辑