自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 开发经验分享

1、Boolean.getBoolean(String a)如果String a = "true";该方法依然返回false该方法的意义是访问一个系统含的key比如System.setProperty("test","a");Boolean.getBoolean("test");这样改方法返回true;2、加密相关的生成随即数new SecureRandom(key...

2013-03-07 10:35:37 90

原创 findbugs 修复日志

1、SIC_INNER_SHOULD_BE_STATIC, Priority: Low BUG描述:This class is an inner class, but does not use its embedded reference to the object which created it. This reference makes the instances of the cla...

2013-03-06 14:21:46 569

原创 网络开发经验分享

1、HTTP返回对象使用 out = response.getOutputStream(); out.write(date.getBytes());可以将文件访问到客户端,但是如果加上 out.flush() 方法那么返回的将是chunked模式。这样的话接收端将会有所不同...

2013-02-28 17:04:43 118

原创 原型模式

原型模式就是通过clone来实现生成新对象的方法。好处就是可以减少构造函数的重新生成,而且可以复制另外一个类的方案下面用代码说明下1、CAT[code="java"]public class Cat implements Cloneable { public int legs; public Name name; public int getLegs()...

2012-11-15 23:37:30 76

原创 java 性能优化读书笔记(四) 并行设计模式

一、Future模式如果在Client远程调用的时候,Server端需要大量的时间去处理,这时候Server段先返回一个mock的对象让访问完成,Client端并不处理这个数据,而且去执行其他的程序,直到请求返回。代码如下1、Main方法[code="java"]public class Main { public static void main(String[] a...

2012-11-13 23:45:18 90

原创 java 性能优化读书笔记(三)

一、引用类型java中存在4中引用类型,强引用,软引用,弱引用,虚引用。1、强引用FinalReference。这个关系是我们经常使用的赋值。特点是可以直接访问目标,jvm不会主动释放,可能会导致内存泄露。2、软引用第2强的引用类型,只有在jvm中堵使用率接近阙值的时候才会回收。如果内存足够,将一直使用。可以来实现对内存敏感的cache3、弱引用系统GC时,发现弱引用直...

2012-11-12 21:30:23 81

原创 java 性能优化读书笔记(二)

1、Value Object模式当需要多次远程调用对象的时候,可以不存在逻辑关系,可以把远程对象封装成一个对象,这样只会调用一次,可以大大减少远程访问量。2、业务代理模式如果Service层需要多次远程调用对象,可以封装一个类,这样在调用的时候可以缓存一下已经取到的对象,可以大大提高效率3、缓冲类(Buffer)在进行IO操作的时候务必使用BufferedWriter或者Buf...

2012-11-10 13:55:43 98

原创 java 性能优化读书笔记(一)

1、单例模式:单例模式A[code="java"]public class Singleton { private Singleton() { } private static Singleton instance = new Singleton(); public static Singleton getInstance() { return insta...

2012-11-08 23:38:35 106

原创 抽象工厂模式

抽象工厂模式就是用来实现创建一系列的产品解决方案的模式。跟工厂方法不同,工厂方法是争对单一产品的创建,比如以前例子中的手机,都是创建这个产品,而抽象工厂不但要创建手机,而且还要创建对应的耳机,而且要去创建的2个或者多个对象是有联系的。下面看例子:1、抽象工厂A 对一系统产品创建的接口[code="java"]public interface AbstractFactory { ...

2012-11-07 23:37:27 60

原创 工厂方法模式

工厂方法模式就是父类不知道具体子类的情况下实现自己的功能。这个模式跟IOC有异曲同工之处。IOC的接口也是不知道其实现,然后直接使用其功能。IOC的子类是通过反射来获取的。而且工厂方法子类是后面NEW出来的的。先看具体的实现1、接口[code="java"]public interface Phone { public void call();}[/co...

2012-11-06 23:47:53 72

原创 AOP的最简单的两种实现方式

这里介绍下aop最简单的两种实现方式。1、动态代理2、cglib首先看动态代理。动态代理大家都知道是必须基于接口的实现1、接口[code="java"]import com.xxx.aop.User;public interface IUserbean { public void addUser(User user); public User g...

2012-11-05 22:49:11 202

原创 工厂模式

简单工厂模式:很容易理解的设计模式首先看代码1、要生产的接口[code="java"]public interface Phone { public void call();}[/code]2、生产东西的实现A[code="java"]public class Iphone implements Phone { @Override publi...

2012-11-04 20:01:14 82

原创 How Tomcat Works 读书笔记(一)

一直以来觉得容器都是一个很神秘的东西,一般开发的时候不会关心容器到底是怎么实现的。现在看了《How Tomcat Works》这本书后大概知道容器的实现,写出来自己巩固下java 基础里面有章是关于Socket的,这个对象是通过http协议来发送消息的。tomcat既然是通过JAVA来实现他的底层也是通过Socket来实现。首先实现一个Servlet容器。它的功能是可以加载serlvet对...

2012-11-01 17:44:31 122

原创 final static 之间的区别

虽然从入门的时候就知道final字段是不可能变字段static字段是静态字段所有实例都共享这一个字段的值但是有一个事情一直没搞清,就是既然 final的值不可变,那所有的实例对final字段的获取都是一样,那为什么还有必要用static final 这样重复的关键字直到后面看见以下定义[code="java"]public final double d = Math.ran...

2012-11-01 11:12:43 84

原创 Comparator 与 Comparable之间的差别

以前一直都用Comparable接口来排序直到最近才只知道还有Comparator接口。2个接口的区别在于一个是在类的内部实现,另外一个是通过外部类来实现简单通过代码来写下区别1、Comparator 模式A、被比较的类[code="java"]public class User { private String name; private int age;...

2012-11-01 09:42:22 92

原创 命令模式

命令模式:将命令对象封装起来,现实请求对象与接收对象的彻底分离。一般命令模式涉及到的几个对象1、接收对象Receiver[code="java"]public class Receiver { private int money; public void action(int newMoney) { this.money = newMoney; Sy...

2012-10-31 00:05:21 77

原创 职责链模式

职责链模式很形象的一个模式,就好比请假一样,如果自己不能审批就要交给上级。所以这个行为模式很好理解实现如下:1、责任链抽象类[code="java"]public abstract class Handler { protected Handler handler; public void setSuccessor(Handler handler) { t...

2012-10-29 21:09:23 79

原创 代理模式

代理模式 通过代理类来添加新的功能1、代理接口[code="java"]public class Student implements Person { @Override public void talk() { System.out.println("talking"); }}[/code]2、被代理类A[code="java"]pub...

2012-10-25 22:14:16 63

原创 享元模式

享元模式享元模式简单的来说就是一种为了避免在我们的系统中产生大量重复对象的方法。它缓存生成后的对象,让后面的使用者不会生成重复的对象。实践中很少使用,实践中都是失去其他的缓存手段。1、要缓存的类[code="java"]public class LoveBook { private final String index; public LoveBook(String...

2012-10-24 23:54:30 77

原创 外观模式

外观模式是一种很好理解的方式。设计一个Facade类,由它来直接与调用方打交道。这样可以对调用方与实现方进行解耦。具体代码1、Facade类[code="java"]public class MoveFacade { public void onTrain() { new Bus().take(); new Car().drive(); } publ...

2012-10-23 23:14:28 53

原创 装饰模式

装饰模式 就是给一个类添加其他的功能。这个模式跟代理模式相当的相识。看代码1、基础接口[code="java"]public interface Phone { public void call();}[/code]2、要装饰的类[code="java"] @Override public void call() { System.out....

2012-10-21 21:49:01 58

原创 合成模式

合成(Composite)模式有时又叫做部分-整体(Part-Whole)模式。 合成模式将叶子对象合成到树的结构中,可以用来描述整体与部分的关系。这样可以任意的添加叶子节点。1、模式涉及到的三个角色 1)抽象构件(Component):这是一个抽象(也可以使抽象类)角色,它给所有参加合成的对象规定抽象方法 2)叶子构件(Leaf):参加合成的树叶对象。一个树叶没有下级的子对象...

2012-10-21 20:58:24 77

原创 使用JAXB 转化bean(支持map对象)

jaxb可以使用XmlAdapter来定义复杂对象。Map是我们经常用的对象所以下面演示下怎么使用1、beans里面包含一个map对象,bean对象不发生变化[code="java"]@XmlRootElement(name = "beans", namespace = "http://www.example.org/studyframework_0.1")@XmlAccess...

2012-10-19 21:56:41 955

原创 使用JAXB相互转化bean对象与xml

java可以轻松的将xml文件转化为bean对象这里介绍一个强大的工具jaxb,其实jdk就有这个功能,但是感觉不怎么强大,而且jaxb还可以根据xsd结构来生成对象。有空会介绍1、javabean对象[code="java"]@XmlRootElement(name = "beans")@XmlAccessorType(XmlAccessType.NONE)public ...

2012-10-18 23:42:55 326

原创 学习写一个web框架入门 如何加载配置(一)

一直以来都觉得写框架是一个很困难的事情,但是随着经验的增加也开始研究了一些主流的webmvc框架,现在依样画瓢来完成一个最简单的框架。既然是web框架servlet是必不可少的一般的主流web框架加载配置不外乎xml配置filter或者listener当然或许也有用servlet的。。我们先看下用listener filter 以及servlet的配置首先我用一个servlet 2...

2012-10-17 00:19:35 75

原创 访问者模式

访问者模式这个模式网上有很多文章其实很多的文章都容易让人混乱。尤其是在被访问者上添加对象,更有甚者是添加ObjectStructure首先我说明下我对访问模式的理解看代码会很容易理解1、访问者接口[code="java"]public interface Visitor { void visit(Home myhome); }[/code]很简单的方法 ...

2012-10-11 23:23:27 62

原创 适配器模式

这章说下适配器模式这个模式很好理解简单的来说[color=red]将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作[/color]还是用例子说明A相机只能用SD卡,但是我手上只有TF卡,怎么才能使相机工作呢?这时候我就去买个一个卡套(当然更多的同学是直接买个SD卡。。。)卡套就相当于一个适配器代码如下1、SD卡...

2012-10-11 22:08:22 66

原创 JAVA7 语法新特性

color=red]1、在switch语句中可以使用字符串类型[/color]请看下例[code="java"]public class SwitchSamlpe { public static void main(String[] args){ SwitchSamlpe.show("man"); SwitchSamlpe.show("\u006d\u0061\u...

2012-10-10 20:13:50 112

原创 桥梁模式

桥梁模式跟上一章介绍的策略模式比较相似最大的区别就是原始类是一个抽象类,我们可以这样理解[color=red]桥梁模式主要是把行为与属性分离。而策略模式只是一个简单的行为模式[/color]。所以通过以下的例子可以很好的看出差异:1、原始类A[code="java"]public abstract class Human { private WorkBehavior wo...

2012-10-09 22:39:54 53

原创 策略模式

策略模式是把对象A中变化的部分抽象出来成为接口B(抽象类也可以实现),然后根据不同的策略来实现B类(抽象类的话就为继承与实现)。写个简单的例子1、原始类A[code="java"]public class Human { private WorkBehavior workBehavior; public void sleep() { S...

2012-10-09 14:48:40 62

原创 tomcat 启动ssl(双向认证)

前一篇写了TOMCAT怎么进行SSL单向认证现在接着写TOMCAT怎么进行SSL双向认证1、通过keytools生成serverkeystore keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore d:\server.keystore 注意CN必须域名 ...

2012-09-28 17:48:42 100

原创 tomcat 启动ssl(单向认证)

1、通过keytools生成keystorekeytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore d:\server.keystore注意[color=red]CN必须域名[/color]比如以后通过https://localhost:8443/path/ 访问...

2012-09-28 14:57:56 135

原创 junit 测试 servlet easymock方式

junit 4,easymock 31、测试代码[code="java"]import static org.junit.Assert.assertEquals;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;...

2012-09-27 23:31:31 224

原创 用枚举实现工厂模式

[code="java"]public enum AgentType { HTTP("http") { public Agent newInstance() { return new HttpAgent(); } }, WEBSERVICE("webSerivce") { public Agent newInstance() { return ne...

2012-09-27 16:55:12 253

原创 ant 打包

(1)、生成jar[code="xml"] [/code]

2012-09-26 15:33:22 49

原创 sso 实现

1、 共享cookie类(未完成)(1)服务器端代码[code="java"]import java.io.IOException;import java.io.PrintWriter;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.ConcurrentMap;imp...

2012-09-25 00:33:18 134

原创 spring security 学习笔记(一)

1、搭建项目 在pom.xml添加[code="java"] org.springframework.security spring-security-core 3.1.2.RELEASE org.springframework.security spring-security-web 3.1.2.RELEASE ...

2012-08-23 13:12:10 124

空空如也

空空如也

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

TA关注的人

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