摘要: 将博客搬至CSDN阅读全文
posted @ 2019-03-16 15:04 jenkinschan 阅读(1) 评论(0) 编辑
摘要: HashTable作为集合框架中的一员,现在是很少使用了,一般都是在面试中会问到其与HashMap的区别。为了能在求职的时候用上场,我们有必要对其原理进行解读。 HashTable的实现原理跟HashMap类似,也是通过节点的哈希值映射到哈希桶数组,如果发生哈希碰撞就构建一条链表,简单点说就是:数组阅读全文
posted @ 2019-03-16 14:49 jenkinschan 阅读(7) 评论(0) 编辑
摘要: 有大半年没有写博客了,虽然一直有在看书学习,但现在回过来看读书基本都是一种知识“输入”,很多时候是水过无痕。而知识的“输出”会逼着自己去找出没有掌握或者了解不深刻的东西,你要把一个知识点表达出来,自己没有吃透是很难写出来的。我算是明白了为什么有些人可以通过写博客来学习,我也不能懒了,坚持写下去。 都阅读全文
posted @ 2017-10-25 07:36 jenkinschan 阅读(204) 评论(0) 编辑
摘要: 一、概述 现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达成的共同意见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作。 备忘录(Memento):在不破坏封装阅读全文
posted @ 2017-02-25 18:23 jenkinschan 阅读(126) 评论(0) 编辑
摘要: 一、概述 建造者模式很容易让人想到建房子,不管建刚需房、改善房还是别墅,它们都离不开地基、柱子、层面和墙体这些组成部分,建筑工人就是把这些组成部分一个个建起来,最后连成一体建出一栋栋楼房。 来看看建造者模式的定义,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建房子的过程阅读全文
posted @ 2017-02-22 22:47 jenkinschan 阅读(1688) 评论(0) 编辑
摘要: 早就发现java父类有个方法clone(),但一直没用过,也不知道怎么用。直到学习了原型设计模式才明白,他就是克隆方法,专门用来复制对象的。虽然到目前为止还没真正在项目中用到,但克隆方法还是挺有用的,它为我们创建相同对象带来了很大的便利,只要克隆一下就可以拥有一个全新的、初始值跟父类一样的对象。 一阅读全文
posted @ 2017-02-20 22:02 jenkinschan 阅读(180) 评论(0) 编辑
摘要: 一、概述 代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。其实就是代理就是做到类似转发的功能,针对不同代理,转发的具体实现不同。 二、解决问题 从原理知道他就是控制客户对一个对象的访问,它跟现实中的中介代理类似,只是作为代表做一些受理工作,真正执行的并不是它自己。比如买火车票,外面有阅读全文
posted @ 2017-02-05 22:21 jenkinschan 阅读(1964) 评论(0) 编辑
摘要: 一、概述 状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它自己的类 二、解决问题 它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换。 三、结构类图 四、应用实例 现在很多APP都有抽奖活动,我们在这里就用这个大家熟悉的阅读全文
posted @ 2017-01-15 16:49 jenkinschan 阅读(219) 评论(0) 编辑
摘要: 一、概述 允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及组合对象。 二、解决问题 组合模式解决这样的问题,当我们的要处理的对象可以生成一颗树形结构,而我们要对树上的节点和叶子进行操作时,它能够提供一致的方式,而不用考虑它是节点还是叶子。 三、结构类图阅读全文
posted @ 2017-01-14 12:04 jenkinschan 阅读(1011) 评论(0) 编辑
摘要: 一、概述 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 二、解决问题 迭代器模式就是提供一种遍历元素的统一接口,用一致的方法遍历聚合元素。试想,如果我们的聚合元素是用不同的方式实现的,有些用了数组,有些用了java的集合类,或者还有其他方式,当客户端要遍历这些元素阅读全文
posted @ 2016-11-15 23:27 jenkinschan 阅读(386) 评论(0) 编辑