- 博客(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
149
原创 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
667
原创 网络开发经验分享
1、HTTP返回对象使用 out = response.getOutputStream(); out.write(date.getBytes()); 可以将文件访问到客户端,但是如果加上 out.flush() 方法 那么返回的将是chunked模式。这样的话接收端将会有所不同...
2013-02-28 17:04:43
157
原创 原型模式
原型模式就是通过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
103
原创 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
146
原创 java 性能优化读书笔记(三)
一、引用类型 java中存在4中引用类型,强引用,软引用,弱引用,虚引用。 1、强引用FinalReference。 这个关系是我们经常使用的赋值。特点是可以直接访问目标,jvm不会主动释放,可能会导致内存泄露。 2、软引用 第2强的引用类型,只有在jvm中堵使用率接近阙值的时候才会回收。如果内存足够,将一直使用。可以来实现对内存敏感的cache 3、弱引用 系统GC时,发现弱引用直...
2012-11-12 21:30:23
113
原创 java 性能优化读书笔记(二)
1、Value Object模式 当需要多次远程调用对象的时候,可以不存在逻辑关系,可以把远程对象封装成一个对象,这样只会调用一次,可以大大减少远程访问量。 2、业务代理模式 如果Service层需要多次远程调用对象,可以封装一个类,这样在调用的时候可以缓存一下已经取到的对象,可以大大提高效率 3、缓冲类(Buffer) 在进行IO操作的时候务必使用BufferedWriter或者Buf...
2012-11-10 13:55:43
155
原创 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
156
原创 抽象工厂模式
抽象工厂模式就是用来实现创建一系列的产品解决方案的模式。跟工厂方法不同,工厂方法是争对单一产品的创建,比如以前例子中的手机,都是创建这个产品,而抽象工厂不但要创建手机,而且还要创建对应的耳机,而且要去创建的2个或者多个对象是有联系的。 下面看例子: 1、抽象工厂A 对一系统产品创建的接口 [code="java"] public interface AbstractFactory { ...
2012-11-07 23:37:27
92
原创 工厂方法模式
工厂方法模式就是父类不知道具体子类的情况下实现自己的功能。 这个模式跟IOC有异曲同工之处。IOC的接口也是不知道其实现,然后直接使用其功能。IOC的子类是通过反射来获取的。而且工厂方法子类是后面NEW出来的的。 先看具体的实现 1、接口 [code="java"] public interface Phone { public void call(); } [/co...
2012-11-06 23:47:53
118
原创 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
263
原创 工厂模式
简单工厂模式: 很容易理解的设计模式 首先看代码 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
129
原创 How Tomcat Works 读书笔记(一)
一直以来觉得容器都是一个很神秘的东西,一般开发的时候不会关心容器到底是怎么实现的。现在看了《How Tomcat Works》这本书后大概知道容器的实现,写出来自己巩固下 java 基础里面有章是关于Socket的,这个对象是通过http协议来发送消息的。tomcat既然是通过JAVA来实现他的底层也是通过Socket来实现。 首先实现一个Servlet容器。它的功能是可以加载serlvet对...
2012-11-01 17:44:31
180
原创 final static 之间的区别
虽然从入门的时候就知道 final字段是不可能变字段 static字段是静态字段所有实例都共享这一个字段的值 但是有一个事情一直没搞清,就是既然 final的值不可变,那所有的实例对final字段的获取都是一样,那为什么还有必要用static final 这样重复的关键字 直到后面看见以下定义 [code="java"] public final double d = Math.ran...
2012-11-01 11:12:43
130
原创 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
131
原创 命令模式
命令模式:将命令对象封装起来,现实请求对象与接收对象的彻底分离。 一般命令模式涉及到的几个对象 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
119
原创 职责链模式
职责链模式 很形象的一个模式,就好比请假一样,如果自己不能审批就要交给上级。所以这个行为模式很好理解 实现如下: 1、责任链抽象类 [code="java"] public abstract class Handler { protected Handler handler; public void setSuccessor(Handler handler) { t...
2012-10-29 21:09:23
132
原创 代理模式
代理模式 通过代理类来添加新的功能 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
111
原创 享元模式
享元模式 享元模式简单的来说就是一种为了避免在我们的系统中产生大量重复对象的方法。它缓存生成后的对象,让后面的使用者不会生成重复的对象。实践中很少使用,实践中都是失去其他的缓存手段。 1、要缓存的类 [code="java"] public class LoveBook { private final String index; public LoveBook(String...
2012-10-24 23:54:30
111
原创 外观模式
外观模式是一种很好理解的方式。设计一个Facade类,由它来直接与调用方打交道。这样可以对调用方与实现方进行解耦。 具体代码 1、Facade类 [code="java"] public class MoveFacade { public void onTrain() { new Bus().take(); new Car().drive(); } publ...
2012-10-23 23:14:28
100
原创 装饰模式
装饰模式 就是给一个类添加其他的功能。这个模式跟代理模式相当的相识。 看代码 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
81
原创 合成模式
合成(Composite)模式有时又叫做部分-整体(Part-Whole)模式。 合成模式将叶子对象合成到树的结构中,可以用来描述整体与部分的关系。 这样可以任意的添加叶子节点。 1、模式涉及到的三个角色 1)抽象构件(Component):这是一个抽象(也可以使抽象类)角色,它给所有参加合成的对象规定抽象方法 2)叶子构件(Leaf):参加合成的树叶对象。一个树叶没有下级的子对象...
2012-10-21 20:58:24
108
原创 使用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
1032
原创 使用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
368
原创 学习写一个web框架入门 如何加载配置(一)
一直以来都觉得写框架是一个很困难的事情,但是随着经验的增加也开始研究了一些主流的webmvc框架,现在依样画瓢来完成一个最简单的框架。 既然是web框架servlet是必不可少的 一般的主流web框架加载配置不外乎xml配置filter或者listener当然或许也有用servlet的。。 我们先看下用listener filter 以及servlet的配置 首先我用一个servlet 2...
2012-10-17 00:19:35
103
原创 访问者模式
访问者模式 这个模式网上有很多文章其实很多的文章都容易让人混乱。尤其是在被访问者上添加对象,更有甚者是添加ObjectStructure 首先我说明下我对访问模式的理解 看代码会很容易理解 1、访问者接口 [code="java"] public interface Visitor { void visit(Home myhome); } [/code] 很简单的方法 ...
2012-10-11 23:23:27
80
原创 适配器模式
这章说下适配器模式 这个模式很好理解简单的来说[color=red]将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作[/color] 还是用例子说明 A相机只能用SD卡,但是我手上只有TF卡,怎么才能使相机工作呢?这时候我就去买个一个卡套(当然更多的同学是直接买个SD卡。。。) 卡套就相当于一个适配器 代码如下 1、SD卡 ...
2012-10-11 22:08:22
105
原创 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
147
原创 桥梁模式
桥梁模式跟上一章介绍的策略模式比较相似 最大的区别就是原始类是一个抽象类,我们可以这样理解[color=red]桥梁模式主要是把行为与属性分离。而策略模式只是一个简单的行为模式[/color]。所以通过以下的例子可以很好的看出差异: 1、原始类A [code="java"] public abstract class Human { private WorkBehavior wo...
2012-10-09 22:39:54
76
原创 策略模式
策略模式是把对象A中变化的部分抽象出来成为接口B(抽象类也可以实现),然后根据不同的策略来实现B类(抽象类的话就为继承与实现)。 写个简单的例子 1、原始类A [code="java"] public class Human { private WorkBehavior workBehavior; public void sleep() { S...
2012-10-09 14:48:40
87
原创 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
151
原创 tomcat 启动ssl(单向认证)
1、通过keytools生成keystore keytool -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
186
原创 junit 测试 servlet easymock方式
junit 4,easymock 3 1、测试代码 [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
271
原创 用枚举实现工厂模式
[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
297
原创 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
152
原创 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
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人