摘要: 本文涉及的javac编译器来自 "openjdk" . javac的目录地址为:解压目录/langtools/src/share/classes/com/sun/tools/javac/ javac编译器将Java编译成为一个有效的字节码文件会经历4个步骤: 词法解析:将Java关键字排序,使得程序 阅读全文
posted @ 2015-08-22 17:01 whthomas 阅读(7373) 评论(1) 推荐(2) 编辑
摘要: MongoDB为Java提供了非常丰富的API操作,相比关系型数据库,这种NoSQL本身的数据也有点面向对象的意思,所以对于Java来说,Mongo的数据结构更加友好。MongoDB在今年做了一次重大升级,版本来到了3.0。相比之前的版本,这个版本中又很大的变化,相应地,本文中的方法可能在旧的版本中... 阅读全文
posted @ 2015-06-28 15:51 whthomas 阅读(12304) 评论(1) 推荐(2) 编辑
摘要: ###基本操作####增加在MongoDB中通过db.collection.insert()来增加新的数据。```db.users.insert({username:"Jack",age:30})```操作完成之后会返回一条WriteResult对象,这个对象包含了操作的状态。```WriteRes... 阅读全文
posted @ 2015-06-23 23:08 whthomas 阅读(554) 评论(0) 推荐(0) 编辑
摘要: Git是一个分布式的版本管理工具。在本地项目和服务器都会拥有版本库,本地版本库由自己控制,自由选择提交代码到服务器端windows上也建议使用命令的方式来使用git,推荐使用客户端 :http://msysgit.github.io/##git使用命令###信息配置把开发者的信息配置到项目中,提交的... 阅读全文
posted @ 2015-06-09 23:35 whthomas 阅读(574) 评论(0) 推荐(1) 编辑
摘要: ###定义用一个中介对象封装一系列的对象交互,中介者使用各个对象不需要显式地相互调用,从而达到耦合松散,而且可以独立地改变它们之间的交互。mediator###几个对象- Mediator 抽象中介者角色:定义统一接口,用于同事之间的通信。- Concrete Mediator 具体中介者的角色:具... 阅读全文
posted @ 2015-04-30 11:32 whthomas 阅读(218) 评论(0) 推荐(0) 编辑
摘要: ###定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。###代码实现```public class PrototypeClass implements Cloneable { @Override public PrototypeClass clone(){ ... 阅读全文
posted @ 2015-04-29 16:17 whthomas 阅读(139) 评论(0) 推荐(0) 编辑
摘要: ###定义将一个类的的接口变换成客户端所期待的另一种接口,使原来因为接口不匹配而无法在一起工作的两个类能够在一起工作。类似电源适配器,转换电压,使得电器能够正常地工作。###几个角色- Target 目标角色:希望使用的接口- Adaptee 源角色:原来已经存在的接口- Adapter 适配器角色... 阅读全文
posted @ 2015-04-25 23:31 whthomas 阅读(174) 评论(0) 推荐(0) 编辑
摘要: ###定义将一个复杂对象的构建与它的表示分离,使得同样的**构建**过程可以创建不同的表示。###四个角色- 产品类(Product):有模板方法和基本方法。- 抽象建造者(Builder):规范产品的组建,一般是由子类实现。- 具体建造者(ConcreteBuilder):实现抽象类定义的所有方法... 阅读全文
posted @ 2015-04-24 08:48 whthomas 阅读(198) 评论(0) 推荐(0) 编辑
摘要: ###定义定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可以重新定义该算法的某些特定步骤。###几个角色1. 抽象模板类2. 具体模板类###代码实现抽象模板类 AbstractClass.java```public abstract class Abstra... 阅读全文
posted @ 2015-04-19 18:32 whthomas 阅读(210) 评论(0) 推荐(0) 编辑
摘要: ###定义为其他对象提供一种代理以控制对这个对象的访问。###几种角色- Subject抽象主题角色:定义业务的接口或者抽象类。- RealSubject具体主题角色:实现业务的具体角色,也是被代理的对象。- Proxy代理主题角色:代理类,负责对真实角色的应用。###代码实现抽象主题角色 Subj... 阅读全文
posted @ 2015-04-18 14:54 whthomas 阅读(160) 评论(0) 推荐(0) 编辑
摘要: ###定义封装一些作用于某种数据结构中得各个元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新操作。###角色- Visitor抽象访问者:抽象类,声明访问者可以访问哪些元素。- ConcreteVisitor 具体访问者:它影响访问者后的具体业务。- Element 抽象元素:声明*... 阅读全文
posted @ 2015-04-16 18:28 whthomas 阅读(162) 评论(0) 推荐(0) 编辑
摘要: ###定义备忘录模式提供了一种弥补真实世界的方法。在不破坏封装的前提下,捕获一个对象的内部状态并在该对象之外保存这个状态。以便对象可以恢复原先保存的状态。###备忘录模式的角色- Originator发起人角色:记录当前的内部状态,负责创建和恢复备忘录数据。- Memento备忘录角色:负责存储Or... 阅读全文
posted @ 2015-04-15 20:35 whthomas 阅读(246) 评论(0) 推荐(0) 编辑
摘要: ###定义门面模式也称外观模式,是一种常用的封装的模式。要求一个子系统的外部与内部的通信必须挺哥一个统一的对象进行。门面模式会提供一个高层次的接口,使得系统更容易使用。![](http://images.cnitblog.com/blog2015/475531/201504/141929199481... 阅读全文
posted @ 2015-04-14 19:29 whthomas 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 观察者模式(Observer Pattern)也叫做发布订阅模式。![](http://images.cnitblog.com/blog2015/475531/201504/131909119645492.jpg)###定义定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则依赖于它的对象都... 阅读全文
posted @ 2015-04-13 19:09 whthomas 阅读(213) 评论(1) 推荐(0) 编辑
摘要: ###定义将抽象和实现解耦,使得两者可以独立地变化。![桥梁模式](http://images.cnitblog.com/blog2015/475531/201504/122224360088143.gif)###4个角色在抽象模式中有4个不同的角色。1. 抽象化角色 Abstracttion2. ... 阅读全文
posted @ 2015-04-12 22:26 whthomas 阅读(210) 评论(0) 推荐(0) 编辑