PerKins Zhu

Le vent se lève,il faut tenter de vivre.
随笔 - 87, 文章 - 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

2017年1月17日

摘要: 今天遇到一个关于静态代码块和非静态代码块执行的问题。先看如下程序。 程序运行结果如下: 对于前两行的输出倒是没什么疑问,加载的时候先加载静态代码块然后加载非静态代码块,静态代码块只在加载类的时候加载一次,而非静态代码块在每次new一个对象的时候进行加载。可第三行的那个A明明已经赋值为8了,可为什么还 阅读全文

posted @ 2017-01-17 20:57 PerKins.Zhu 阅读(359) 评论(1) 推荐(0) 编辑

2017年1月13日

摘要: List ArrayList(具体情况需要进行具体分析,不能死记理论) 1、可指定容量,如果不指定则默认10. 扩容策略为:(oldLength*3/2)+1,可调用ensureCapacity()进行手动扩容。 劣势:在进行删除、添加的时候(不包括不需要扩容的情况:数组没满的情况下的添加和最后一位 阅读全文

posted @ 2017-01-13 17:10 PerKins.Zhu 阅读(311) 评论(0) 推荐(0) 编辑

2017年1月9日

摘要: 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 主要内容: A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n 阅读全文

posted @ 2017-01-09 21:58 PerKins.Zhu 阅读(329) 评论(0) 推荐(0) 编辑

2017年1月8日

摘要: HDOJ链接 http://acm.hdu.edu.cn/showproblem.php?pid=1003 不了解题目的朋友可以先看一下题目,在这里就不再详细介绍了。(文章内容和解题思路不完全相同,方法一、二、三、四没有对sequence 全为负数的情况进行考虑,就不再对代码进行更新了,如果需要可看 阅读全文

posted @ 2017-01-08 00:39 PerKins.Zhu 阅读(2084) 评论(1) 推荐(0) 编辑

2016年9月25日

摘要: 访问者模式:表示一个作用于某对象结构中的各个元素操作。可以在不改变元素类的前提下为这种对象添加新操作。 优势:很容易扩展对象的功能,不需要再对对象就行修改操作,只需要添加一个功能扩展类即可。 劣势:数据结构中存储的对象类型需要唯一,不允许有两种及以上类型 示例说明:为企业和个人客户增加数据分析请求功 阅读全文

posted @ 2016-09-25 09:33 PerKins.Zhu 阅读(214) 评论(0) 推荐(0) 编辑

2016年9月14日

摘要: 在此之前对commons包了解的不多,最常用的就是StringUtils.isBlack(str)来取代if(str !=null && str.lenght()>1)的判断,昨天忽然想看看StringUtils是个什么神奇的东西,这一看才发现里面没那么简单! 先看StringUtils中的所有方法 阅读全文

posted @ 2016-09-14 16:54 PerKins.Zhu 阅读(213) 评论(0) 推荐(0) 编辑

2016年9月5日

摘要: 原型模式:添加一个自我克隆的方法,可以调用object的clone()(需要实现Cloneable接口,不会调用构造器),也可以自己写个clone()方法进行克隆。 这里涉及到一个深复制和浅复制的东西,也就是对象中包含其他对象的时候需要通过深复制来复制被包含对象,否则被包含对象只是克隆出来了一个引用 阅读全文

posted @ 2016-09-05 22:12 PerKins.Zhu 阅读(193) 评论(0) 推荐(0) 编辑

摘要: 中介者模式:为了减小各个对象的直接接触,引入中介对象来对各个对象之间的复杂操作进行处理。 就像卖方中介一样的。帮助维护租客和房东之间的沟通。 示例说明:房屋买卖中介。卖房者和买房者都认识中介,但是买房者和卖房者是不认识的。 定义一个中介(单例实现) 定义一个炒房者抽象类Operator 添加两个炒房 阅读全文

posted @ 2016-09-05 18:04 PerKins.Zhu 阅读(242) 评论(0) 推荐(0) 编辑

摘要: 责任链模式:在请求对象不清楚处理对象是谁的情况下使用该模式。 请求对象把请求提交给处理对象,所有的处理对象依次进行判断,如果是自己的处理范围则进行处理,结束请求向后传递,如果不属于自己的处理范围则向下传递请求直到请求被处理。 注意区分责任链模式和装饰模式的区别:责任链是对请求对象的处理过滤;装饰模式 阅读全文

posted @ 2016-09-05 17:55 PerKins.Zhu 阅读(279) 评论(0) 推荐(0) 编辑

摘要: 享元模式:实现重复对象的共享,节约内存空间。内部状态可以共享,外部状态可以进行设置。 这个模式感觉有点像对象池(不同的是不同类型的对象只保存一个),需要使用的时候就从内存中取出该对象。 使用的时候需要从工厂中取出使用对象。 注意和单利模式的区别,单利只有一个该对象,但是本模式不仅仅有一个该对象。而是 阅读全文

posted @ 2016-09-05 17:36 PerKins.Zhu 阅读(197) 评论(0) 推荐(0) 编辑

2016年9月3日

摘要: 陆陆续续做了有一个月,期间因为各种技术问题被多次暂停,最关键的一次主要是因为存储容器使用的普通二叉树,在节点权重相同的情况下导致树高增高,在进行遍历的时候效率大大降低,甚至在使用递归的时候导致栈内存溢出。后来取消递归遍历算法,把普通的二叉排序树升级为平衡二叉树这才解决这些问题。着这个过程中把栈、队列 阅读全文

posted @ 2016-09-03 08:31 PerKins.Zhu 阅读(636) 评论(0) 推荐(0) 编辑

2016年9月2日

摘要: 观察者模式:如果一个对象(被观察者)状态改变时需要去通知其他对象(观察者)进行一些操作,此时可以使用观察者模式。 其实质还是通过观察者调用本身的方法进行操作。 示例说明:班长告诉学生老师来了。被观察者:班长,观察者:学生 被观察者: 定义观察者接口: 观察者实现类: 测试类: java中是定义的有观 阅读全文

posted @ 2016-09-02 15:10 PerKins.Zhu 阅读(177) 评论(0) 推荐(0) 编辑

2016年9月1日

摘要: 桥接模式:具有依赖关系的对象可以灵活的进行随意组合。 实例说明:人开车在路上跑。 能够自由组合人、车和路来实现各种情景 就像不知道1+1为什么等于2 一样,我也不知道为什么要使用桥接模式。可以解耦吧?不需要在person中new Car不需要在Car中new Road. 只需要在调用处注入三个对象便 阅读全文

posted @ 2016-09-01 21:32 PerKins.Zhu 阅读(495) 评论(0) 推荐(0) 编辑

2016年8月30日

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

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

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

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

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

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

2016年8月29日

摘要: 单例模式:程序在运行期间只能有一个实例对象。 第一中实现方式:饥汉模式 在类进行初始化的时候 就加载了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) 编辑

2016年8月28日

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

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

2016年8月27日

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

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

2016年8月21日

摘要: 在上一篇学习过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) 编辑

2016年8月19日

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

posted @ 2016-08-19 17:34 PerKins.Zhu 阅读(457) 评论(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) 编辑

2016年8月18日

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

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

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