- 博客(40)
- 资源 (26)
- 收藏
- 关注
原创 《JAVA与模式》26天系列—第20天—责任链模式
责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。从击鼓传花谈起 击鼓传花是一种热闹而又紧张的饮酒游戏。在酒宴上宾客依次坐定位置,由一人击鼓,击鼓的
2012-06-29 14:37:07 4823 4
原创 《JAVA与模式》26天系列—第19天—迭代子模式
迭代子模式又叫游标(Cursor)模式,是对象的行为模式。迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。聚集和JAVA聚集 多个对象聚在一起形成的总体称之为聚集(Aggregate),聚集对象是能够包容一组对象的容器对象。聚集依赖于聚集结构的抽象化,具有复杂化和多样性。数组就是最基本的聚集,也是其他的JAVA聚
2012-06-29 12:30:20 4957 2
转载 架构师之修炼内功篇-系统性能优化 .
转自:http://blog.csdn.net/iammerryz/article/details/7679076 架构师之系统性能优化----菜鸟Merry Zhang积累过程中这段时间在做系统的优化。事情的起因是这样的。我们开发的系统需要在分公司使用,而分公司的网络带宽只有专线2M的。我们的系统的层次结构是C/S三层,虽然客户端是Swing开发的Deskto
2012-06-29 09:22:52 10760 1
转载 代码Review的必要性和考虑要素 .
转自:http://blog.csdn.net/iammerryz/article/details/5141866 极限编程里提到结对编程和代码Review,凡是稍微懂编程的人看了都会赞成。这也体现了代码Review的重要性和必要性。但是,在实际的执行过程中,代码Review往往很难得到很好的执行。主要原因可能包含以下几点: (1)对自己编写的代码的不够自信,害怕别人找到问题;
2012-06-29 09:21:21 1791
原创 《JAVA与模式》26天系列—第18天—观察者模式
观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式
2012-06-28 22:17:03 4030
原创 《JAVA与模式》26天系列—第17天—模板方法模式
模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模板方法模式的结构 模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。 模板方法模式需要开发抽象类和具体子类
2012-06-28 11:31:11 3467
原创 答疑一个哥们的多线程问题关于 start()和run()
之所以出现线程,就是为了更好的利用CPU,让她更加“精明”的干活。通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。然后通过此Thread类调用方法run()来完成其运行操作的,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程终止,而CPU再运行其它线程,而如果直接用Run方法,这只是调用一个方法而已
2012-06-27 10:21:48 3554 2
原创 《JAVA与模式》26天系列—第16天—策略模式
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一
2012-06-26 22:24:48 3672
原创 《JAVA与模式》26天系列—第15天—不变模式
一个对象的状态在对象被创建之后就不再变化,这就是所谓的不变模式。不变模式的结构 不变模式可增强对象的强壮型(robustness)。不变模式允许多个对象共享某一个对象,降低了对该对象进行并发访问时的同步化开销。如果需要修改一个不变对象的状态,那么就需要建立一个新的同类型对象,并在创建时将这个新的状态存储在新对象里。 不变模式只涉及到一个类。一个类的内部状态创建后,在整个生命周期
2012-06-26 21:58:59 3197
原创 《JAVA与模式》26天系列—第14天—桥梁模式
桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。桥梁模式的用意 桥梁模式虽然不是一个使用频率很高的模式,但是熟悉这个模式对于理解面向对象的设计原则,包括“开-闭”原则以及组合/聚合复用原则都很有帮助
2012-06-26 21:49:49 3181
原创 《JAVA与模式》26天系列—第13天—门面模式
门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门
2012-06-26 16:31:47 5796 3
原创 《JAVA与模式》26天系列—第12天—享元模式=单例模式+工厂模式+合成模式
享元模式=单例模式+工厂模式+合成模式 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。结构图:注意多线程的单例。package com.bankht.Flyweight.complex;/** * @author: 特种兵—AK47 * @创建时间:2012-6-26 下午03:25:14 * * @类说明 :单例 */
2012-06-26 15:35:20 6348
原创 《JAVA与模式》26天系列—第11天—享元模式
Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。Java中的String类型 在JAVA语言中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建就不可改变。在JAVA中字符串常量都是存在常量池中的
2012-06-26 13:58:35 4323
原创 《JAVA与模式》26天系列—第10天—代理模式
代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式的结构 所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式类图如下: 在代理模式中的角色: ● 抽象对象角色:声明了目标对象和代理对象
2012-06-26 10:48:44 4111 2
原创 《JAVA与模式》26天系列—第9天—装饰模式
装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。 装饰模式的类图如下: 在装饰模式中的角色有: ●
2012-06-26 10:16:42 4038 2
原创 《JAVA与模式》26天系列—第8天—合成模式
合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。合成模式 合成模式把部分和整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由它们复合而成的合成对象同等看待。 比如,一个文件系统就是一个典型的合成模式系统。下图是常见的计算机XP文
2012-06-25 22:23:33 4310 2
原创 《JAVA与模式》26天系列—第7天—适配器模式
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用。这时候一个三相到两相的转换器(适配器)就能解决此问题,而这正像是
2012-06-25 21:40:27 3929 1
原创 《JAVA与模式》26天系列—第6天—原型模式
原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是原型模式的用意。原型模式的结构 原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的对象,就不再需要关心这个实例本身的类型,只要实现了克隆自身的方法,就可以通过这个方法来获
2012-06-25 17:28:22 3703 1
原创 《JAVA与模式》26天系列—第5天—建造模式
建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。产品的内部表象 一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又叫做产品的内部表象(internal representation)。不同的产品可以有不
2012-06-25 11:14:06 4404 2
原创 《JAVA与模式》26天系列—第4天—单例模式
作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类 单例模式的结构 单例模式的特点:单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 饿汉式单例类public class EagerSingleton { private static Eager
2012-06-20 12:40:56 3818 5
原创 主题:Java 枚举7常见种用法
DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。本人觉得最常用的还是:用法一、用法二用法一:常量在JDK1.5 之前,我们定义常量都是: publicstaticfianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED,
2012-06-20 11:22:37 1764
原创 《JAVA与模式》26天系列—第3天—抽象工厂模式
场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。 事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,才能确定具体的CPU。 同样,在选择主板的时候,也有一系列问题,比如品牌、芯片组、集成
2012-06-19 17:44:37 6728 11
原创 《JAVA与模式》26天系列—第2天—工厂方法模式
工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。 工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。那么工厂方法模式是在什么场景下使用呢,下面就以本人的理解举例说明: 相信很多人都做过导入导出功能,就拿导出功能来说。有这么一个需求:XX系统需要支持对
2012-06-19 15:26:00 4066 2
原创 《JAVA与模式》26天系列—第1天—简单工厂模式
简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。那么简单工厂模式是在什么场景下使用呢,下面就以本人的理解举例说明: 就拿登录功能来说,假如应用系统需要支持多种登录方式如:口令认证、域认证(口令认证通常是去数据库中验证用户,而域认证则是需要到微软的域中验证用户)。那么自然的做法就是建
2012-06-19 14:00:52 5485 7
原创 读者写者-【写者优先】
1. 实现原理首先设计两个线程,一个读者线程,一个写者线程,两个线程读者写者问题是这样一种情况,就是允许对资源进行两种类型的操作(读和写)。而写操作是排他的(排斥读者,同样排斥其他写者),读操作是共享的(多个读者可读,排斥写者)。这就存在两种策略:1.读者优先(强读者同步Strong reader synchronization):总是给读者优先权,只要写者当前没有进行
2012-06-11 10:58:59 3034 1
原创 自己写的仿Log4j控制台打印记录写到文件的工具类
编写背景: 今天下午,在写一个多线程的测试程序《读者写者-【写者优先】》(该文章会在晚些的时候发出来)的时候,想看一下控制台的打印效果,但是你懂的,eclipse控制台只能保存一部分的数据。配置log4j又有点大材小用。所以就自己写了这个可以写入本地文件的工具类: 工具类实现的功能:1.按照[时间-调用类-调用方法-调用方法所在行号-message]的格式
2012-06-07 17:49:44 2844
原创 生产者消费者之爸爸妈妈儿子女儿苹果橘子编程实现
在《java 同步和互斥【用具体程序说明】》这篇文章的基础上,来实现下面的程序桌上有一个空盘子,只允许放一个水果。爸爸可以向盘中放苹果,也可以向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时,一次只能放一只水果。下面是程序的具体实现代码,在写这个程序的时候,有点小问题,纠结了很长时间,于是在csdn论坛上发表帖子终于得到了解决先说说涉及到的类的作用
2012-06-07 11:26:41 5792
原创 java同步和互斥【用具体程序说明】
所有对象都自动含有单一的锁,也就是所有对象都有且只有唯一的锁,所以当某个任务(线程)访问一个类A中含有sycnhronized的方法是,那么在这个线程从该方法返回之前(也就是该方法在当前线程执行完之前),类A中的其他被该关键字标记的方法在其他的线程中都会被阻塞。 通俗点说就是,当调用A的含有synchronized的方法是,A会被枷锁,此时A中其他含有synchroniz
2012-06-07 11:18:13 2175
原创 java同步和互斥【相关原理】
Java关键字synchronized是Java 语言提供的对多线程和同步的一种机制。synchronized可以作为函数的修饰符,也可作为函数内的语句。它可以作用于instance变量,对象引用(object reference),static函数和类名称字面常量(class literals)。 下面介绍一下synchronized的关键字的使用方法:一、synchr
2012-06-07 11:09:59 1480
转载 error和exception的区别,RuntimeException和非RuntimeException的区别
1. 异常机制 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常
2012-06-05 10:53:07 2089
原创 JAVA套接字(Socket)101七天系列—第七天【现实生活中的套接字】
现实生活中的套接字 1. 介绍我们到目前为止讨论过的示例已经涵盖了 Java 编程的套接字机制,但在“现实”的一些例子中如何使用它们呢?即便用了多线程和带有连接池,如此简单地使用套接字,在多数应用程序中仍然是不合适的。相反地,在构成您的问题域的模型的其它类中使用套接字可能是明智的。最近我们在把一个应用程序从大型机/SNA 环境移植到 TCP/IP 环境时就是这样做的。该应用程序的工
2012-06-05 09:55:35 3001
原创 JAVA套接字(Socket)101七天系列—第六天【一个带有连接池的示例】
1. 介绍我们现在已经拥有的 MultithreadedServer 每当有客户机申请一个连接时都在一个新 Thread 中创建一个新ConnectionHandler。这意味着可能有一捆 Thread “躺”在我们周围。而且创建 Thread 的系统开销并不是微不足道的。如果性能成为了问题(也请不要事到临头才意识到它),更高效地处理我们的服务器是件好事。那么,我们如何更高效地管理
2012-06-05 09:47:28 4166 2
原创 JAVA套接字(Socket)101七天系列—第五天【一个多线程的示例】
一个多线程的示例 1. 介绍前面的示例教给您基础知识,但并不能令您更深入。如果您到此就停止了,那么您一次只能处理一台客户机。原因是 handleConnection() 是一个阻塞方法。只有当它完成了对当前连接的处理时,服务器才能接受另一个客户机。在多数时候,您将需要(也有必要)一个多线程服务器。要开始同时处理多台客户机,并不需要对 RemoteFileServer 作太多
2012-06-05 09:25:24 2938
原创 主题:Java面试122题
1、面向对象的特征有哪些方面 (1).抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细 节。抽象包括两个方面,一是过程抽象,二是数据抽象。(2).继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派
2012-06-05 09:17:28 3662 1
原创 JAVA套接字(Socket)101七天系列—第四天【一个简单示例】
一个简单示例 1. 背景我们将在本部分讨论的示例将阐明在 Java 代码中如何使用 Socket 和 ServerSocket。客户机用Socket 连接到服务器。服务器用ServerSocket 在端口 3000 侦听。客户机请求服务器 C: 驱动器上的文件内容。为清楚起见,我们把示例分解成客户机端和服务器端。最后我们将把它们组合起来以使您能看到整体模样。我们在使用 JD
2012-06-04 14:38:35 3908 5
原创 JAVA套接字(Socket)101七天系列—第三天【一个秘密的套接字】
一个秘密的套接字 1. 介绍Java 平台在 java.net 包中提供套接字的实现。在本教程中,我们将与 java.net 中的以下三个类一起工作:URLConnection Socket ServerSocket java.net 中还有更多的类,但这些是您将最经常碰到的。让我们从URLConnection 开始。这个类为您不必了解任何底层套接字细节就能在 Ja
2012-06-04 13:16:02 2686
原创 JAVA套接字(Socket)101七天系列—第二天【套接字基础】 .
套接字(socket)为两台计算机之间的通信提供了一种机制,在 James Gosling 注意到 Java 语言之前,套接字就早已赫赫有名。该语言只是让您不必了解底层操作系统的细节就能有效地使用套接字。多数着重讨论 Java 编码的书或者未涵盖这个主题,或者给读者留下很大的想象空间。本教程将告诉您开始在代码中有效地使用套接字时,您真正需要知道哪些知识。我们将专门讨论以下问题:什么是套接字 它位于
2012-06-03 01:51:14 3746 3
原创 JAVA套接字(Socket)101七天系列—第一天【百度百科的解释】
套接字 现象解释 socket非常类似于电话插座。以一个国家级电话网为例。电话的通话双方相当于相互通信的2个进程,区号是它的网络地址;区内一个单位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于socket号。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码,相当于对方有一个固定的socket。然后向对方拨号呼叫,相当于发出连接请求
2012-06-01 14:29:56 3305
翻译 10 个基于 JavaScript 的图表插件推荐
交互式图表是Web应用中不可或缺的一部分,一个优秀的图表,不仅可以令数据一目了然,而且可以极大地增强应用的用户体验。 本文带来10个非常酷的JavaScript图表库,有简单的也有复杂的,以满足不同的需求。 1. Cubism.js 一个基于D3.js的插件,可以实时显示时间序列。D3.js是一个针对HTML和SVG的JavaScript可视化库。 源
2012-06-01 09:17:58 2552
Java虚拟机(JVM)
2011-11-29
javascript-tree集合 大部分树状菜单集合
2011-11-16
润干报表4.0技术白皮书_企业版.doc
2011-11-09
Java设计模式(疯狂Java联盟版)
2011-11-09
javascript.doc
2011-10-26
ajax教程.chm
2011-10-26
WebSphereIBM内部资料
2011-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人