- 博客(34)
- 收藏
- 关注
原创 集合链表存储结构的实现和操作
Set接口:public interface Set { /** * @introduction 向集合中增加一个元素 * @param object * @return * @author Guo */ public boolean add(Object object); /** * @introduction 从集合中删除一个元素 * @param
2013-09-15 10:03:00
711
原创 集合顺序存储结构的实现和操作
具体的Demo:Set接口:public interface Set { /** * @introduction 向集合中增加一个元素 * @param object * @return * @author Guo */ public boolean add(Object object); /** * @introduction 从集合中删除一个元素
2013-09-12 23:48:40
1187
原创 单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。Singleton结构图Singleton类:public class Singleton { private static Singleton instance; /** * 构造方法让其private,这就堵死了外界利用 * new创建此类实例的可能 * @author Guo */ p
2013-09-11 17:27:52
482
原创 如何打jar包
下面介绍一下如何打jar包:在dos命令行下输入jar命令,就可以看到下面的内容:用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...选项包括: -c 创建新的归档文件 -t 列出归档目录 -x 解压缩已归档的指定(或所有)文件
2013-09-09 22:58:39
787
原创 生活的点点滴滴
2013-9-7 今天跟阿健去了陈家祠跟越秀公园,走了很多,也看了很多,很开心。回到大学城,就跟SS他们一起吃饭,想去包房睡觉,但是没房就很无奈的吃了个饭,各回各家,各找各妈了。其实我想带给别人快乐,但是如何做才是有效的呢,我一直在思考着。
2013-09-08 00:22:33
605
原创 ZXing二维图
public class TestQrcode { /** * @introduction 设置颜色值,由于后来的setRGB方法 * @author Guo */ private static final int BLACK = 0xff000000; private static final int WHITE = 0xFFFFFFFF; public static
2013-09-05 20:17:28
686
原创 Java操作Excel
public class MyExcel { /** * 生成Excel */ @Test public void createExcel() { try { /** * 打开文件 */ WritableWorkbook book = Workbook.createWorkbook(new File("src/com/xujianguo/exc
2013-09-04 20:39:55
625
原创 理发师悖论
今天上离散数学的时候老师给我们看来一个小小的故事,其实就是著名的理发师悖论,也就是罗素悖论:在某个城市中有一位理发师,他的广告词是这样写的:“本人的理发技艺十分高超,誉满全城。我将为本城所有不给自己刮脸的人刮脸,我也只给这些人刮脸。我对各位表示热诚欢迎!”来找他刮脸的人络绎不绝,自然都是那些不给自己刮脸的人。可是,有一天,这位理发师从镜子里看见自己的胡子长了,他本能地抓起了剃刀,你们看他能不能给他
2013-09-03 14:43:35
1172
原创 适配器模式
适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。下面是Adapter结构图: 下面演示一个简单的Demo:Target类:public class Target { public void request() { System.out.println("一般"
2013-08-30 19:31:51
469
原创 观察者模式
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象,这个主体对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。下面是观察者模式的结构图: 下面演示一个Demo:Subject类:abstract class Subject { private List observers = new ArrayList(); publ
2013-08-26 16:40:10
489
原创 建造者模式
建造者模式(Builder):将一个复杂对象的构建与它表示分离,使得同样的构建过程可以创建不同的表示。下面是Builder的结构图: 下面演示一个Demo:创建一个产品类,由多个部件组成:public class Product { List parts = new ArrayList(); public void add(String part) {
2013-08-25 14:24:31
580
原创 外观模式
外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。下面是外观模式的结构图: 下面接着演示一个Demo:Facade类:public class Facade { SubSystemOne one; SubSystemTwo two; SubSystemThree three; SubSy
2013-08-24 13:32:09
604
原创 模板方法模式
模板方法模式(TemplateMethod):定义一个操作中的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定的步骤。下面是模板方法模式的结构图:下面演示一个Demo:定义个AbstractClass类:abstract class AbstractClass { /** * 一些放到子类中去实现的抽象行为 */
2013-08-23 18:05:00
558
原创 原型模式
原型模式(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象下面是原型模式的结构图:下面就演示一个Demo:首先创建一个抽象类Prototype,它要实现Cloneable接口,重写clone方法,只有这样类才具有克隆的功能abstract class Prototype implements Cloneable{ private Stri
2013-08-23 12:59:42
501
原创 工厂模式
工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法是一个类的实例延迟到其子类。下面是工厂方法模式的结构图: 下面演示一个Demo: 定义Product接口及它的实现类:public interface Product { public void printName();} public class
2013-08-22 17:51:20
521
原创 代理模式
代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问下面是代理模式的UML图: 下面是实际代码的Demo:定义一个接口或者是一个抽象类也行:public interface Subject { public void request();}被代理的类:public class RealSubject implements Subjec
2013-08-22 13:29:02
541
原创 内部类
内部类:把一个类放在另一个类中定义,那么这么定义在内部的类就叫做内部类。内部类的作用:1.内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。2.内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以互相访问,但外部类不能访问内部类的实现细节,例如内部类的成员变量。3.匿名内部类适合用于创建那些仅需要一次使用
2013-08-22 11:27:28
514
原创 依赖倒转原则&里氏代换原则
依赖倒转原则(Dependence Inversion Principle):简称DIP,它有两个原则,A:高层的模块不应该依赖低层的模块,两个都应该依赖抽象 B:抽象不应该依赖细节,细节应该依赖于抽象,这个也就是说模块之间的关系是通过抽象的东西来关联、依赖的,模块之间不产生任何的直接关系。里氏代换原则(Liskov Substitution Principle):简称LSP,子类型必须能
2013-08-15 15:07:18
728
原创 开放-封闭原则
开放-封闭原则(Open-Close Principle):对于扩展是开放的(Open for extension),对于更改是封闭的(Closed for modification)怎么样才能做到Open for extension,Closed for modification?抽象编程,抽象出一个大概的需求,这个抽象是不可变的,但是它的实现却是自由发挥的,通过抽象来隔离以后发生的同类变化
2013-08-15 14:02:09
570
原创 单一责任原则
单一责任原则(Simple Responsibility Principle):又简称为SRP,通俗的解释就是一个类,应该仅有一个引起它变化的原因,很简单的解释就是一个类只负责一向责任就o了。为什么会产生这样的编程原则呢?因为当一个类中含有两个责任的时候的,一个责任的变化可能会影响另外一个责任的实现,这样的互相影响不利用代码的可复用性,修改起来也是相当的费劲,而SRP就可以很好的解决这样的问题
2013-08-15 12:40:34
822
原创 策略模式
策略模式:封装了一系列的算法,用户不直接与这些算法打交道,独立于使用用户而变化策略模式的三个组成条件:1.抽象的策略角色2.具体的策略角色3.环境角色,持有一个策略角色的引用,为用户服务的类下面演示一个Demo:1.抽象的策略角色public interface Strategy { public void print();}2.几个实现了
2013-08-14 20:53:09
591
原创 简单的工厂模式
简单的工厂模式:其实也叫做静态工厂方法,这种模式的核心特点是通过传进去的参数来判断创造怎么样的实例现在演示一个Demo:1.建立一个父类public class Sport { public void play() { System.out.println("sport"); }}2.有几个子类继承了这个父类public class Swim extend
2013-08-14 20:10:03
545
原创 System类
System类可以说是一些与系统相关的属性和方法的集合,在System类中的,它的方法都是静态的,如果想调用这个方法,直接使用System类就行了。 利用System类中的currentTimeMillis方法我们可以计算一个程序的执行时间:public class SystemDemo1 { public static void main(String[] args) {
2013-08-08 18:00:49
667
原创 Runtime类
对于Runtime类,我们可以这么的理解,Runtime就是一个封装了JVM进程的类,其实每一个java程序都是启动了一个JVM进程,通过Runtime类,我们可以了解到JVM里面的一些基本信息,如JVM最大的内存使用量,JVM最大的内存空闲量,JVM的内存总量,还可以用Runtime类进行垃圾回收,下面我们就演示一下:public class RuntimDemo1 { public s
2013-08-08 17:03:09
515
原创 Annotation
从JDK5开始,Java增加了对元数据的支持,也就是Annotation,它也被称作注释。 基本的Annotation: 限定重写父类方法:@Override@Override就是用来指定方法的重写,它强制一个子类必须覆盖父类的方法,这个大家比较熟悉就不多说了。 已过时的标记:@Deprecated如果你的程序元素被标记成Deprecated的话,那么你在调用的时候该程序
2013-08-01 22:01:58
599
原创 Struts2文件的上传与下载
Struts2对文件的上传功能进行了很好的封装,主要用的是fileUpload上传组件。 下面介绍Struts2的单文件上传: 首先你的jsp页面定义好一个上传文件的视图: file: 然后你对应的Action里面的处理方法应该如下: 先定义几个成员变量:private String username;private File uplo
2013-07-30 21:21:03
602
原创 在Struts2中定义自己的Interceptor
在Struts2中有很多很多的Interceptor,要定义自己的拦截器,可以先看看它们是怎么实现的,它们有些是extends一些特定的Interceptor,但百变不离其宗的是拦截器都实现了Interceptor这个接口,下面我定义一个MyInterceptor:public class MyInterceptor implements Interceptor{ public void
2013-07-29 18:44:57
609
原创 I18N国际化
人们常把I18N作为“国际化”的简称,其来源是英文单词 internationalization的首末字符i和n。18为中间的字符数。Java中如何做到国际化呢,即如果去兼容各种的语句。我们首先来了解一下java.util包下一个叫ResourceBundle,这个类是可以用在特定的语言环境中加载资源包,它的getBundle方法有两个参数,一个是资源包的名称,一个是特定的语言环境,说到特定的
2013-07-27 23:33:40
666
原创 简单的DTD约束XML
一个良好的XML文档只有受到良好的约束才能有效的工作,对此,这里我们用DTD文件对XML进行语义约束。 XML中引入DTD: 定义元素:定义任意类型的元素:定义空元素:定义字符串内容的元素: 定义子元素:定义有序的子元素:定义互斥的子元素:(下面三者每次只能出现一次)子元素出现的频率:+代表出现1次或多次,*代表出现0次或多次,?代
2013-07-26 22:34:33
772
原创 XML文档规则
下面总结几点XML的简单文档规则 1.XML文档有且仅有一个根元素 2.XML的语法是严格区分大小写的 3.如果不需要子内容,那么该XML元素就是一个空元素,写成: 4.XML元素里的多个属性之间是无序的,因此同一个元素补课包含多个同名的属性;XML元素内包含的子元素则是有序的,因此同一个元素各异包含多个同名的子元素 5.XML的声明,文档的基
2013-07-26 15:43:04
1576
原创 FreeMarker在Java Project的简单使用
FreeMarker是一个基于模板生成文本输出的工具,下面简单介绍一下FreeMarker组件的使用: 首先在根目录下建立一个templates文件夹,放置我们生出的FreeMarker模板。 然后就是建立一个Java文件,开始去创建一个连接,然后利用模板输出数据。 1.创建FreeMarker的配置实例
2013-07-25 16:53:41
913
原创 反射和泛型
在反射中使用泛型,可以避免生成对象时的强制类型转换,也就不会抛出ClassCastException。 若通过Class.forName(String name)去得到Class对象,然后再通过newInstance()方法创建对象的实例的话,返回值是一个Object类型的,若你知道它是Date类型的,你就可以强制转换,但是你却用ArrayList类型去强制转换的话,你就会抛出ClassCa
2013-07-22 16:56:05
732
原创 通过反射类查看类的信息
要反射一个类,必须先为该类生成一个Class的对象,以下介绍生成Class对象的三种方法: 1.使用Class对象的forName(String name)方法,里面的String类型参数是你要反射的类的全限定类名,例如这样的格式:com.xujianguo.model.Admin。 2.直接使用该类的class属性,即例如Admin.class,则会返回一个Class的对象。
2013-07-22 00:43:01
804
原创 MyBatis的基本使用
MyBatis是Apache下的一个开源框架,主要支持Sql语句的查询、数据的存储和高级映射,下面界面它的基本使用: 首先你需要在Apache的官网上下载MyBatis的jar包,将其引入我们的工程中,当然要引入数据库相关的jar包,这里我引入的是mysql-connector-java-bin.jar,接下来就是配置XML文件了,首先要配置的是MyBatis-Config.xml,我的配置
2013-07-21 20:19:27
656
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人