摘要: 如下:package 集合类.Set类; import java.util.Arrays; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; /** * LinkedHas... 阅读全文
posted @ 2015-05-17 21:58 243573295 阅读(248) 评论(0) 推荐(0) 编辑
摘要: jdk中api的定义Collection ├----List │ ├----LinkedList │ ├----ArrayList │ └----Vector │ └----Stack └----SetMap ├----Hashtable ├----HashMap ├... 阅读全文
posted @ 2015-05-17 21:55 243573295 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 如下:package 集合类.Set类; /** * Set不允许重复数据 */ /** * TreeSet 是用来进行集合排序的,请注意他和LinkedHashSet的区别。 TreeSet是按照一定的规则,将加入到集合里面的数据进行排序, 而LinkedHashSet是严... 阅读全文
posted @ 2015-05-17 21:46 243573295 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 如下:package 时间日期类; import java.text.SimpleDateFormat; import java.util.Date; public class 日期格式转换 { /** * 将某个日期以固定格式转化成字符串 * @name... 阅读全文
posted @ 2015-05-17 21:45 243573295 阅读(213) 评论(0) 推荐(0) 编辑
摘要: setpublic interface Set extends Collection 使用集合汇总package 集合类.Set类; /** * Set不允许重复数据 * Set最多允许一个null数据 * @author jjj * */ import java.util.Enu... 阅读全文
posted @ 2015-05-17 21:43 243573295 阅读(283) 评论(0) 推荐(0) 编辑
摘要: HashSet 的实现public class HashSet extends AbstractSet implements Set, Cloneable, java.io.Serializable对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 H... 阅读全文
posted @ 2015-05-17 21:32 243573295 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 类继承and实现上看public class Hashtable extends Dictionary implements Map, Cloneable, java.io.Serializable public class HashMap extends Abstr... 阅读全文
posted @ 2015-05-17 20:37 243573295 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 1. runtimeException子类: 1、 java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。 2、java.lang.ArithmeticException 算术条件异常。譬如:整数除... 阅读全文
posted @ 2015-05-17 19:41 243573295 阅读(275) 评论(0) 推荐(0) 编辑
摘要: try-catch语句还可以包括第三部分,就是finally子句。它表示无论是否出现异常,都应当执行的内容。try-catch-finally语句的一般语法形式为: try { // 可能会发生异常的程序代码 } catch (Type1 id1) { // 捕获并处理try抛... 阅读全文
posted @ 2015-05-17 02:26 243573295 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。 异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。 Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误... 阅读全文
posted @ 2015-05-17 01:57 243573295 阅读(2463) 评论(0) 推荐(1) 编辑
摘要: transient的作用及使用方法都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我... 阅读全文
posted @ 2015-05-17 01:48 243573295 阅读(406) 评论(0) 推荐(0) 编辑
摘要: java.util.ArrayList就是传说中的动态数组.继承了关系,有此可看出ArrayList与list的collection的关系public class ArrayList extends AbstractList implements List, RandomAccess,... 阅读全文
posted @ 2015-05-17 01:38 243573295 阅读(1583) 评论(0) 推荐(0) 编辑
摘要: 对象池使用的基本思路是:将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销。并非所有对象都适合拿来池化――因为维护对象池也要造成一定开销。对生成时开销不大的对象进行池化,反而可能会出现“维护对象池的开销”大于“生成新对象的开销”,从而... 阅读全文
posted @ 2015-05-17 00:39 243573295 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 常用的:1.优化循环。通过重新组织重复的子表达式来提高循环体的运行性能。2减少使用对象的数量来提高运行性能。3.缩减网络传输数据来缩短等待时间。其他:1.采用对象池技术,提高对象的利用效率。性能的损耗主要源于创建和释放对象,因此要避免对象的创建和释放。采用对象池技术,预先定义一个对象池,预先创建一组... 阅读全文
posted @ 2015-05-17 00:37 243573295 阅读(201) 评论(0) 推荐(0) 编辑
摘要: Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象。 序列化是Java中实现持久化存储的一种方法; 为数据传输提供了线路级对象表示法。 Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来... 阅读全文
posted @ 2015-05-17 00:31 243573295 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 解释器模式是我们暂时的最后一讲,一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。Context类是一个上下文环境类,Plus和Minus分别是用来计算的实现,代码如下:public interface Expression { public int interpret(Con... 阅读全文
posted @ 2015-05-16 20:41 243573295 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改。如果使用中介者模式,只需关心和Mediator类的关系,具体类类之间的关系及调度交给Mediator就行,这有点像spring容器的作用。先看看图:Use... 阅读全文
posted @ 2015-05-16 20:39 243573295 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定算法又易变化的系统。因为访问者模式使得算法操作增加变得容易。若系统数据结构对象易于变化,经常有新的数据对象增加进来,则不适合使用访问者模式。访问者模式的优点是增加操作很容易,因为增加操作意味... 阅读全文
posted @ 2015-05-16 20:37 243573295 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变化。看图:State类是个状态类,Context类可... 阅读全文
posted @ 2015-05-16 20:36 243573295 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下:假设有原始类A,A中有各种属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态,类C呢,就是一个用来存储备忘录的,且只能存储,不能修改等操作。做个图来分析一下:Original类是原始... 阅读全文
posted @ 2015-05-16 20:35 243573295 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。我们看看关系图:I... 阅读全文
posted @ 2015-05-16 20:33 243573295 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 接下来我们将要谈谈责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整。先看看关系图:Abstracthandl... 阅读全文
posted @ 2015-05-16 20:32 243573295 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 顾名思义,迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松。这句话包含两层意思:一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。我们看下关系图:这个思路和我们常用的一模一样,MyCollection中定义了集合的... 阅读全文
posted @ 2015-05-16 20:30 243573295 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 包括这个模式在内的接下来的四个模式,都是类和类之间的关系,不涉及到继承,学的时候应该 记得归纳,记得本文最开始的那个图。观察者模式很好理解,类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。其实,简单来讲就... 阅读全文
posted @ 2015-05-16 20:28 243573295 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用,先看个关系图:就是在AbstractCalculator类中定义一个主方法calculate,calculat... 阅读全文
posted @ 2015-05-16 20:26 243573295 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数,关系图如下:图中ICalculator提供同意的方法,Abstract... 阅读全文
posted @ 2015-05-16 20:25 243573295 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。FlyWeightFactory负责创建和管理享元单元,当一个客户端请求时,工厂需要检查当前对象池中是否有符合条件的对象,如果有,就返回已经存在的对象,如果没有,则创建一个新对象,FlyWe... 阅读全文
posted @ 2015-05-16 20:21 243573295 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图:直接来看代码:public class TreeNode { private String name; private TreeNode parent; private Vecto... 阅读全文
posted @ 2015-05-16 20:19 243573295 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,... 阅读全文
posted @ 2015-05-16 20:18 243573295 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)实现类:public class CPU { ... 阅读全文
posted @ 2015-05-16 20:14 243573295 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替... 阅读全文
posted @ 2015-05-16 20:12 243573295 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:public interface Sourc... 阅读全文
posted @ 2015-05-16 20:10 243573295 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式,先看类图:核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口时Targeta... 阅读全文
posted @ 2015-05-16 20:07 243573295 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。原型模式的结构 原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建... 阅读全文
posted @ 2015-05-16 19:55 243573295 阅读(207) 评论(0) 推荐(0) 编辑
摘要: Object中的clone方法为复制当前对象protected native Object clone() throws CloneNotSupportedException;想要使用这个方法需要在类中覆盖重写这个方法然后返回super.clone()原因因为方法权限为protected只有子类才能... 阅读全文
posted @ 2015-05-16 19:47 243573295 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示] 与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。即建造模式可以强制实行一种分步骤进行的建造过程。 建造模式是将复... 阅读全文
posted @ 2015-05-16 19:32 243573295 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3、有些类如交易所... 阅读全文
posted @ 2015-05-16 19:25 243573295 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。为工厂类做一个统一的父... 阅读全文
posted @ 2015-05-16 19:14 243573295 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式(Factory Method) 工厂模式适合:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。在以下的三种模式中,第一种如果传入的字符串有误,不能正确创建对象,第三种相对于第二种,不需要实例化工厂类,所以,大多数情况下,我们会选用第三种——静态工厂方... 阅读全文
posted @ 2015-05-16 19:02 243573295 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块... 阅读全文
posted @ 2015-05-16 18:55 243573295 阅读(195) 评论(0) 推荐(0) 编辑