PerKins Zhu

Le vent se lève,il faut tenter de vivre.
随笔 - 86, 文章 - 0, 评论 - 45, 阅读 - 21万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

08 2016 档案

摘要:二叉排序树集中了数组的查找优势以及链表的插入、删除优势,因此在数据结构中占有一定的地位。但在一定的情况下二叉排序树又有可能变为链表,例如插入从1~100的数,这时进行数据查找的效率就要降低。 为了解决二叉排序树这种左右子树深度不均匀的情况引入了一种平衡二叉树(AVLTree):任何一个节点的左右子树 阅读全文

posted @ 2016-08-30 23:04 PerKins.Zhu 阅读(25843) 评论(5) 推荐(3) 编辑

摘要:代理模式:代理者和被代理者实现共同的行为,然后让代理制调用被代理者完成这些行为。 示例说明:代理者Proxy 代理MrLi 给MrssHong 送礼物。 类图如下: 代码实现: 定义一个送礼物的接口:GiveGift 实现MrLi: 实现代理Proxy : 被送礼物者:MrssHong 测试类: 代 阅读全文

posted @ 2016-08-30 13:51 PerKins.Zhu 阅读(379) 评论(0) 推荐(0) 编辑

摘要:装饰者模式:灵活的对一个对象的功能进行修改。 优势:可以自由的对对象进行功能(行为)进行添加、删除操作。而不像继承那样会继承一些父类多余的方法。 示例说明:创建两个人,一个正常的人(NormalPerson)可以进行呼吸、哭、说话、跑、跳、开车;另一个聋哑人只可以进行呼吸、跳、跑、哭。要求重用各种动 阅读全文

posted @ 2016-08-30 11:08 PerKins.Zhu 阅读(247) 评论(0) 推荐(0) 编辑

摘要:单例模式:程序在运行期间只能有一个实例对象。 第一中实现方式:饥汉模式 在类进行初始化的时候 就加载了singleton 对象,这是会占用内存。 第二种实现方式:懒汉模式 在进行调用时对singleton进行实例化,这时如果多个线程同时调用getInstance(),这时线程存在安全问题。 为了解决 阅读全文

posted @ 2016-08-29 20:57 PerKins.Zhu 阅读(215) 评论(0) 推荐(1) 编辑

摘要:建造者模式:把工人(对象组件的建造者ComputerCreator)给主管(Director),让主管告诉工人如何一步一步创建产品。 各司其职,主管知道该怎么创建对象,但是不会创建具体的对象模块。工人会创建具体的模块但是不知道给怎样一步一步创建。两者组合创建出需要的对象。 优势:把复杂对象的各个模块 阅读全文

posted @ 2016-08-29 17:00 PerKins.Zhu 阅读(307) 评论(0) 推荐(0) 编辑

摘要:抽象工厂模式:用于解决“多个不同类型的对象需要被同一处调用且同一类型的不同对象需要被多处调用”的情景。 示例说明:工厂A(FactoryA)可以生产电脑A(ComputerA)和手机A(MobilePhoneA),工厂B(FactoryB)也可以生产电脑B(ComputerB)和手机B(Mobile 阅读全文

posted @ 2016-08-29 16:09 PerKins.Zhu 阅读(275) 评论(0) 推荐(0) 编辑

摘要:工厂方法模式:让父类在不知道具体实现的情况下成自己功能的调用。实现方法是通过子类继承父类的抽象方法来获取被调用子类。(这里有些DI的味道) 优势:1、可以在不知道具体调用和实现的情况下进行编程 2、更加容易扩展新版本 劣势:1、在客户端需要和具体的产品对象进行耦合,在调用处必须要知道需要调用的具体类 阅读全文

posted @ 2016-08-28 11:44 PerKins.Zhu 阅读(364) 评论(0) 推荐(0) 编辑

摘要:工厂模式:使用者不用创建使用对象,直接从工厂取出对象进行使用。 示例:子宫(工厂)创造各种动物 工厂模式的优势:在添加动物的时候不需要修改客户端(TestFactoryPattern),只需要直接添加动物就可以,工厂会自动(这时需要一个标示告诉工厂你需要那种动物,也就是type)返回需要的动物。 工 阅读全文

posted @ 2016-08-27 19:38 PerKins.Zhu 阅读(341) 评论(0) 推荐(0) 编辑

摘要:在上一篇学习过HashMap(源码解读—HashMap)之后对hashTable也产生了兴趣,随即便把hashTable的源码看了一下。和hashMap类似,但是也有不同之处。 public class Hashtable<K,V> extends Dictionary<K,V> implement 阅读全文

posted @ 2016-08-21 12:40 PerKins.Zhu 阅读(1384) 评论(0) 推荐(0) 编辑

摘要:更新:文章中“阀值”这个词是错误的,正确的是“阈值”,意思:阈值又叫临界值,是指一个效应能够产生的最低值或最高值。 ********************************************************************************* 什么是HashMap 阅读全文

posted @ 2016-08-19 17:34 PerKins.Zhu 阅读(456) 评论(0) 推荐(1) 编辑

摘要:Stack特性:先进后出、后进先出 java.util.Stack实现了这一数据结构。 public class Stack<E> extends Vector<E>,Stack继承Vector,Stack中的所有操作都是调用Vector中的方法进行操作,即使是数据的存储也是使用vector中的Ob 阅读全文

posted @ 2016-08-19 10:29 PerKins.Zhu 阅读(243) 评论(0) 推荐(0) 编辑

摘要:学习了一下linkedList的源码,做下记录. java底层实现的是双向环链表,程序定义了一个header,来保存头结点,header.next指向最后一个节点(最后插入到),header.prevoious指向第一个节点(最先插入的)。 链表中的节点是通过Entry 来充当节点的: Entry是 阅读全文

posted @ 2016-08-18 17:15 PerKins.Zhu 阅读(258) 评论(0) 推荐(0) 编辑

摘要:前段时间学习二叉树在处理删除操作的时候遇到一个头疼的问题:删除节点的时候明明已经置null了可树上该节点依旧存在,还必须执行node.father.left = null;才可以删除node节点,寻找了一下原因发现还是因为对java内存管理理解不够深入。 代码如下: 运行代码之后发现本来已经在cha 阅读全文

posted @ 2016-08-08 21:28 PerKins.Zhu 阅读(2883) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示