自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ray8567548的专栏

程序员菜鸟

  • 博客(34)
  • 收藏
  • 关注

原创 集合链表存储结构的实现和操作

Set接口:public interface Set { /** * @introduction 向集合中增加一个元素 * @param object * @return * @author Guo */ public boolean add(Object object); /** * @introduction 从集合中删除一个元素 * @param

2013-09-15 10:03:00 683

原创 集合顺序存储结构的实现和操作

具体的Demo:Set接口:public interface Set { /** * @introduction 向集合中增加一个元素 * @param object * @return * @author Guo */ public boolean add(Object object); /** * @introduction 从集合中删除一个元素

2013-09-12 23:48:40 1145

原创 单例模式

单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。Singleton结构图Singleton类:public class Singleton { private static Singleton instance; /** * 构造方法让其private,这就堵死了外界利用 * new创建此类实例的可能 * @author Guo */ p

2013-09-11 17:27:52 456

原创 如何打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 760

原创 生活的点点滴滴

2013-9-7  今天跟阿健去了陈家祠跟越秀公园,走了很多,也看了很多,很开心。回到大学城,就跟SS他们一起吃饭,想去包房睡觉,但是没房就很无奈的吃了个饭,各回各家,各找各妈了。其实我想带给别人快乐,但是如何做才是有效的呢,我一直在思考着。

2013-09-08 00:22:33 572

原创 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 654

原创 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 607

原创 理发师悖论

今天上离散数学的时候老师给我们看来一个小小的故事,其实就是著名的理发师悖论,也就是罗素悖论:在某个城市中有一位理发师,他的广告词是这样写的:“本人的理发技艺十分高超,誉满全城。我将为本城所有不给自己刮脸的人刮脸,我也只给这些人刮脸。我对各位表示热诚欢迎!”来找他刮脸的人络绎不绝,自然都是那些不给自己刮脸的人。可是,有一天,这位理发师从镜子里看见自己的胡子长了,他本能地抓起了剃刀,你们看他能不能给他

2013-09-03 14:43:35 1075

原创 适配器模式

适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。下面是Adapter结构图: 下面演示一个简单的Demo:Target类:public class Target { public void request() { System.out.println("一般"

2013-08-30 19:31:51 439

原创 观察者模式

观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象,这个主体对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。下面是观察者模式的结构图: 下面演示一个Demo:Subject类:abstract class Subject { private List observers = new ArrayList(); publ

2013-08-26 16:40:10 466

原创 建造者模式

建造者模式(Builder):将一个复杂对象的构建与它表示分离,使得同样的构建过程可以创建不同的表示。下面是Builder的结构图: 下面演示一个Demo:创建一个产品类,由多个部件组成:public class Product { List parts = new ArrayList(); public void add(String part) {

2013-08-25 14:24:31 567

原创 外观模式

外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。下面是外观模式的结构图: 下面接着演示一个Demo:Facade类:public class Facade { SubSystemOne one; SubSystemTwo two; SubSystemThree three; SubSy

2013-08-24 13:32:09 579

原创 模板方法模式

模板方法模式(TemplateMethod):定义一个操作中的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定的步骤。下面是模板方法模式的结构图:下面演示一个Demo:定义个AbstractClass类:abstract class AbstractClass { /** * 一些放到子类中去实现的抽象行为 */

2013-08-23 18:05:00 509

原创 原型模式

原型模式(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象下面是原型模式的结构图:下面就演示一个Demo:首先创建一个抽象类Prototype,它要实现Cloneable接口,重写clone方法,只有这样类才具有克隆的功能abstract class Prototype implements Cloneable{ private Stri

2013-08-23 12:59:42 482

原创 工厂模式

工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法是一个类的实例延迟到其子类。下面是工厂方法模式的结构图: 下面演示一个Demo: 定义Product接口及它的实现类:public interface Product { public void printName();} public class

2013-08-22 17:51:20 500

原创 代理模式

代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问下面是代理模式的UML图:  下面是实际代码的Demo:定义一个接口或者是一个抽象类也行:public interface Subject { public void request();}被代理的类:public class RealSubject implements Subjec

2013-08-22 13:29:02 516

原创 内部类

内部类:把一个类放在另一个类中定义,那么这么定义在内部的类就叫做内部类。内部类的作用:1.内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。2.内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以互相访问,但外部类不能访问内部类的实现细节,例如内部类的成员变量。3.匿名内部类适合用于创建那些仅需要一次使用

2013-08-22 11:27:28 493

原创 依赖倒转原则&里氏代换原则

依赖倒转原则(Dependence Inversion Principle):简称DIP,它有两个原则,A:高层的模块不应该依赖低层的模块,两个都应该依赖抽象 B:抽象不应该依赖细节,细节应该依赖于抽象,这个也就是说模块之间的关系是通过抽象的东西来关联、依赖的,模块之间不产生任何的直接关系。里氏代换原则(Liskov Substitution Principle):简称LSP,子类型必须能

2013-08-15 15:07:18 700

原创 开放-封闭原则

开放-封闭原则(Open-Close Principle):对于扩展是开放的(Open for extension),对于更改是封闭的(Closed for modification)怎么样才能做到Open for extension,Closed for modification?抽象编程,抽象出一个大概的需求,这个抽象是不可变的,但是它的实现却是自由发挥的,通过抽象来隔离以后发生的同类变化

2013-08-15 14:02:09 531

原创 单一责任原则

单一责任原则(Simple Responsibility Principle):又简称为SRP,通俗的解释就是一个类,应该仅有一个引起它变化的原因,很简单的解释就是一个类只负责一向责任就o了。为什么会产生这样的编程原则呢?因为当一个类中含有两个责任的时候的,一个责任的变化可能会影响另外一个责任的实现,这样的互相影响不利用代码的可复用性,修改起来也是相当的费劲,而SRP就可以很好的解决这样的问题

2013-08-15 12:40:34 789

原创 策略模式

策略模式:封装了一系列的算法,用户不直接与这些算法打交道,独立于使用用户而变化策略模式的三个组成条件:1.抽象的策略角色2.具体的策略角色3.环境角色,持有一个策略角色的引用,为用户服务的类下面演示一个Demo:1.抽象的策略角色public interface Strategy { public void print();}2.几个实现了

2013-08-14 20:53:09 563

原创 简单的工厂模式

简单的工厂模式:其实也叫做静态工厂方法,这种模式的核心特点是通过传进去的参数来判断创造怎么样的实例现在演示一个Demo:1.建立一个父类public class Sport { public void play() { System.out.println("sport"); }}2.有几个子类继承了这个父类public class Swim extend

2013-08-14 20:10:03 535

原创 System类

System类可以说是一些与系统相关的属性和方法的集合,在System类中的,它的方法都是静态的,如果想调用这个方法,直接使用System类就行了。  利用System类中的currentTimeMillis方法我们可以计算一个程序的执行时间:public class SystemDemo1 { public static void main(String[] args) {

2013-08-08 18:00:49 640

原创 Runtime类

对于Runtime类,我们可以这么的理解,Runtime就是一个封装了JVM进程的类,其实每一个java程序都是启动了一个JVM进程,通过Runtime类,我们可以了解到JVM里面的一些基本信息,如JVM最大的内存使用量,JVM最大的内存空闲量,JVM的内存总量,还可以用Runtime类进行垃圾回收,下面我们就演示一下:public class RuntimDemo1 { public s

2013-08-08 17:03:09 487

原创 Annotation

从JDK5开始,Java增加了对元数据的支持,也就是Annotation,它也被称作注释。  基本的Annotation:  限定重写父类方法:@Override@Override就是用来指定方法的重写,它强制一个子类必须覆盖父类的方法,这个大家比较熟悉就不多说了。  已过时的标记:@Deprecated如果你的程序元素被标记成Deprecated的话,那么你在调用的时候该程序

2013-08-01 22:01:58 580

原创 Struts2文件的上传与下载

Struts2对文件的上传功能进行了很好的封装,主要用的是fileUpload上传组件。  下面介绍Struts2的单文件上传:  首先你的jsp页面定义好一个上传文件的视图: file:   然后你对应的Action里面的处理方法应该如下:  先定义几个成员变量:private String username;private File uplo

2013-07-30 21:21:03 583

原创 在Struts2中定义自己的Interceptor

在Struts2中有很多很多的Interceptor,要定义自己的拦截器,可以先看看它们是怎么实现的,它们有些是extends一些特定的Interceptor,但百变不离其宗的是拦截器都实现了Interceptor这个接口,下面我定义一个MyInterceptor:public class MyInterceptor implements Interceptor{ public void

2013-07-29 18:44:57 585

原创 I18N国际化

人们常把I18N作为“国际化”的简称,其来源是英文单词 internationalization的首末字符i和n。18为中间的字符数。Java中如何做到国际化呢,即如果去兼容各种的语句。我们首先来了解一下java.util包下一个叫ResourceBundle,这个类是可以用在特定的语言环境中加载资源包,它的getBundle方法有两个参数,一个是资源包的名称,一个是特定的语言环境,说到特定的

2013-07-27 23:33:40 649

原创 简单的DTD约束XML

一个良好的XML文档只有受到良好的约束才能有效的工作,对此,这里我们用DTD文件对XML进行语义约束。  XML中引入DTD:  定义元素:定义任意类型的元素:定义空元素:定义字符串内容的元素:  定义子元素:定义有序的子元素:定义互斥的子元素:(下面三者每次只能出现一次)子元素出现的频率:+代表出现1次或多次,*代表出现0次或多次,?代

2013-07-26 22:34:33 748

原创 XML文档规则

下面总结几点XML的简单文档规则  1.XML文档有且仅有一个根元素   2.XML的语法是严格区分大小写的   3.如果不需要子内容,那么该XML元素就是一个空元素,写成:   4.XML元素里的多个属性之间是无序的,因此同一个元素补课包含多个同名的属性;XML元素内包含的子元素则是有序的,因此同一个元素各异包含多个同名的子元素   5.XML的声明,文档的基

2013-07-26 15:43:04 1529

原创 FreeMarker在Java Project的简单使用

FreeMarker是一个基于模板生成文本输出的工具,下面简单介绍一下FreeMarker组件的使用:  首先在根目录下建立一个templates文件夹,放置我们生出的FreeMarker模板。  然后就是建立一个Java文件,开始去创建一个连接,然后利用模板输出数据。  1.创建FreeMarker的配置实例

2013-07-25 16:53:41 873

原创 反射和泛型

在反射中使用泛型,可以避免生成对象时的强制类型转换,也就不会抛出ClassCastException。  若通过Class.forName(String name)去得到Class对象,然后再通过newInstance()方法创建对象的实例的话,返回值是一个Object类型的,若你知道它是Date类型的,你就可以强制转换,但是你却用ArrayList类型去强制转换的话,你就会抛出ClassCa

2013-07-22 16:56:05 676

原创 通过反射类查看类的信息

要反射一个类,必须先为该类生成一个Class的对象,以下介绍生成Class对象的三种方法:  1.使用Class对象的forName(String name)方法,里面的String类型参数是你要反射的类的全限定类名,例如这样的格式:com.xujianguo.model.Admin。  2.直接使用该类的class属性,即例如Admin.class,则会返回一个Class的对象。 

2013-07-22 00:43:01 773

原创 MyBatis的基本使用

MyBatis是Apache下的一个开源框架,主要支持Sql语句的查询、数据的存储和高级映射,下面界面它的基本使用:  首先你需要在Apache的官网上下载MyBatis的jar包,将其引入我们的工程中,当然要引入数据库相关的jar包,这里我引入的是mysql-connector-java-bin.jar,接下来就是配置XML文件了,首先要配置的是MyBatis-Config.xml,我的配置

2013-07-21 20:19:27 646

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除