自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

java socket 编程

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;public class EchoThread implements Runnable { ...

2011-03-11 16:30:08 110

同步访问共享的可变数据(synchronized与volatile关键字)

synchronized关键字可以保证同一时刻,只有一个线程可以执行某一个方法,或是某一个代码块。它包含两个特征:1、互斥 2、可见。即同步不仅可以阻止一个线程看到对象处于不一致的状态中,还可以保证进入同步方法或者同步代码块的每个线程,都看到由同一个锁保护的之前所有的修改效果。java语言规范保证读或者写一个变量时原子的,除非这个变量的类型为long或者doub...

2011-03-08 17:11:18 321

解决could not find adb.exe

eclipse指定android sdk 路径时出现 could not find adb.exe 解决办法:复制android-sdk-windows\platform-tools文件夹下 adb.exe ,AdbWinApi.dll ,AdbWinUsbApi.dll 三个文件到android-sdk-windows\tools 目录下即可...

2011-02-18 15:06:50 980

调停者模式

看了很久感觉理解不太好! 调停者模式包装了一系列对象的相互作用的方式,使得这些对象不必互相明显的引用。从而他们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生变化时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。 在调停者模式中,所有的成员对象都可以协调工作,但是又不直接相互管理。这些对象都与一个处于中心地位的调停者对象发生紧...

2011-02-17 11:42:49 138

访问者模式

访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接收这个操作的数据结构则可以保持不变。访问者模式的组成结构:   1) 访问者角色(Visitor):为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。   2) 具体访问者角色(Co...

2011-02-16 11:14:19 79

原创 java静态分派

静态分派发生在编译时期,分派根据静态类型信息发生。方法重载就是静态分派 public class BlackHorse implements Horse{} public class BlackHorse implements Horse{} public class WhiteHorse implements Horse {} public...

2011-02-15 15:15:27 88

原创 状态设计模式

状态模式允许一个对象在其内部状态改变的时候改变其行为。他把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。/** * 环境角色 */public class Context { private State state; public void se...

2011-02-15 11:28:58 92

原创 备忘录设计模式

 备忘录(Memento)模式又称标记(Token)模式。GOF给备忘录模式的定义为:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。/** * 发起人角色 */public class Originator { private String state; /** * 工厂...

2011-02-14 14:57:29 84

原创 命令模式

命令模式把一个请求或者操作封装到一个对象中。他把发出命令的责任和执行命令的责任分割开,委派给不同的对象每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的 /** * 请求者角色...

2011-01-28 20:24:56 85

原创 责任链模式

责任链模式里,很多对象由每一个对象对其下家的引用二连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,使得系统在不影响客户端的情况下动态地重新组织链和分配责任 纯与不纯的责任链模式一个纯的责任链模式要求一个具体的处理者对象只能在两个行为中选择一个:一个是承担责任,二是把责任推给下一家。不允许出现某...

2011-01-28 10:16:05 80

原创 迭代子模式

迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象,就是为不同的聚集提供相同的遍历方式,使得客户端只需要关注迭代接口,而不需要关注所迭代的聚集的具体结构聚集和Java聚集多个对象聚在一起形成的总体称之为聚集(Aggregate),聚集对象是能够包容一组对象的容器对象。聚集依赖于聚集结构的抽象化,具有复杂性和多样性,数组就是最基本的聚集,也是其他Java聚集对象的设计基础。Ja...

2011-01-27 19:18:08 104

原创 观察者模式

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化,会通知所有观察者对象,使他们能自动更新自己 import java.util.Observable;public class House extends Observable { private int price = 1000000; public ...

2011-01-26 17:15:40 73

原创 模板方法模式

一个抽象类,将部分逻辑以具体方法以及构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现 public abstract class Account { protected String accountNumber; public Account() { } ...

2011-01-26 09:33:46 89

原创 策略模式

策略模式用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得他们可以相互替换一个系统需要动态地在几种算法中选择一种。那么这些算法可以包装到一个个的具体算法里面,而这些具体算法类都是一个抽象算法类的子类。就是这些具体算法类均有统一的接口,由于多态性原则,客户端可以选择使用任何一个具体算法类,并只持有一个数据类型是抽象算法类的对象如果在一个系统里面有许多类,他们之间的区别仅...

2011-01-25 17:29:58 97

原创 不变模式

一个对象的状态在对象创建之后就不再变化,这就是不变模式不变模式有两种状态:一种是弱不变模式,另一种是强不变模式 弱不变模式:一个类的实例的状态是不可变化的,但是这个类的子类的实例具有可能变化的状态第一,所考虑的对象没有任何方法会修改对象的状态第二,所有的属性都应当是私有的第三,这个对象所引用到的其他对象如果可变对象的话,必须设法限制外界对这些可变对象的访问,防止外界修改这些...

2011-01-25 15:05:15 86

原创 桥模式

将抽象化与实现化脱耦,使得二者可以独立变化。该模式的目标是通过把高层的抽象和底层的实现分开,分别构建自己的类层次结构,并通过实现部分的接口将两部分进行桥接,从而达到高层抽象和底层实现可以独立的方便扩展的目的。其核心是分离,和委托。 在以下的情况下应当使用桥梁模式:如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系。设计要求实现角色的...

2011-01-24 16:09:27 107

原创 门面模式

外部系统与一个子系统的通信必须通过一个统一的门面对象进行。门面模式的用意是为了为子系统提供一个集中化和简单化的沟通管道,而不能向子系统加入新的行为。 /** * 子系统角色 */public class Camera { public void turnOn(){ System.out.println("turning on the camera...

2011-01-22 11:15:04 89

原创 装饰器模式

public interface ISource { public void operation(); } public class Source implements ISource { public void operation() { System.out.println("原始类方法"); }} pub...

2011-01-22 10:40:12 88

原创 转:安全合成模式

合成模式把部分和整体的关系用树结构表示出来。使客户端把一个个单独的成分对象和由它们复合而成的合成对象同等看待。 public interface IFile { //返回自己的实例 IFile getComposite(); //某个商业方法 void sampleOperation(); //获取深度 in...

2011-01-22 10:32:55 107

原创 struts日期转换器

import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.commons.beanutils.Converter;public class DateConvert...

2011-01-15 21:51:59 85

单纯享元模式

享元模式以共享的方式高效的支持大量的细粒度对象享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State)一个内蕴状态是存储在享元对象内部的,并且是不会随着环境改变而有所不同一个外蕴状态是随环境改变而改变的、不可以共享的状态。享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入享元对象内部外蕴状态不可...

2011-01-15 18:18:56 154

原创 缺省适配器

缺省适配器为一个接口提供缺省实现,这样子类可以从这个缺省的实现进行扩展,而不必从原有的接口进行扩展 public interface 和尚 { public void 吃斋(); public void 念经(); public void 打坐(); public void 习武(); public String getName();...

2011-01-15 15:50:44 244

原创 对象适配器(object adapter)

把一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 /** * 目标角色 */public interface Target { public void operation1(); public void operation2();} /** * 原角色 */public clas...

2011-01-15 15:11:35 434

原创 java深克隆

public class DeepClone implements Serializable { private static final long serialVersionUID = 7265080590460397160L; private String name; private Long age; public...

2011-01-15 12:01:57 74

原始模型模式

通过一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。 public interface Prototype extends Cloneable { public Object clone();} public class ConcreatePrototype implements Prototype { ...

2011-01-15 11:31:20 123

原创 建造设计模式

 Director   /** * 导演者 */public class Director { private Builder builder; /** * 产品构造方法,负责调用各个零件的建造方法 */ public void construct(){ builder = new Conc...

2010-12-28 16:02:19 70

原创 java怎样实现线程的同步

1 wait方法:  该方法属于Object的方法,wait方法的作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所在的代码块的锁,并在其他线程调用notify或者notifyAll方法时恢复到竞争锁状态(一旦获得锁就恢复执行)。  调用wait方法需要注意几点:  第一点:wait被调用的时候必须在拥有锁(即synchronized修饰的)的代码块中。...

2010-12-27 17:05:22 92

原创 抽象工厂设计模式

  /** * 园丁 */public interface Gardener {} /** * 北方园丁 */public class NorthernGardener implements Gardener { public Fruit createFruit(String name) { return new Nor...

2010-12-27 12:17:08 81

原创 转:Singleton(单态)模式 和 Double-Checked Locking(双重检查锁定)模式

确保一个特定的类只有一个对象被实例化。Singleton:用于单线程应用程序Double-Checked Locking在java实际上无法得到预期的效果,不能保证singleton的正确性。参考:(英文)http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html  饿汉式 public clas...

2010-12-25 16:03:17 137

基于Properties文件的对象工厂工具

 BeanFactorypackage com.lichaozhang.util;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Map;import java.util.Properties;public class ...

2010-12-24 15:12:21 126

原创 java定时器访问db2数据库

package diaodu;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Timer;...

2010-12-22 11:18:09 130

原创 递归获取目录下的所有文件

package file;import java.io.File;import java.util.ArrayList;import java.util.List;public class ReadHiddenFile { private static String dir_name = "E:\\bosent_baseline_cmbcgolddisplay...

2010-12-22 11:12:54 103

原创 新io与旧io文件复制

package file;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutput...

2010-12-22 10:57:59 107

原创 db2 错误码 57016 因为表不活动,所以不能访问它

执行插入语句时出现:57016 因为表不活动,所以不能访问它,上网上搜一大堆人说 解决方法为:执行命令:reorg table XXX;即可。可是我运行reorg table XXX也出错,后来发现是使用DbVisualizer出的问题。最后用DB2原有的控制中心可以执行reorg table XXX,问题解决了。...

2010-10-22 10:22:41 244

原创 转:java.math.BigDecimal的精度问题

1. String myMoney = "100.0128"; BigDecimal money= new BigDecimal(myMoney); //设置精度,以及舍入规则 money= money.setScale(2, BigDecimal.ROUND_HALF_UP); System.out.println(money); //100.01...

2010-10-21 21:11:08 145

原创 如何使 ArrayList 线程安全

Collections.synchronizedList(new ArrayList());

2010-09-26 21:45:32 121

原创 转:Clone和New哪个更快

Clone和new哪个更快呢,这个问题的答案不是一定的,要根据实际情况决定:情况一:对象简单,这个时候new更快,测试代码如下:class TestObj implements Cloneable{    public Object clone(){        Object obj = null ;        try{            obj = super.clone(); ...

2010-09-26 21:43:17 206

原创 转:使用SimpleDateFormat必须注意的问题

在使用SimpleDateFormat的经常会有一些错误的用法,例如如下方式:public class TestDateFormat{     private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");     public void method1(){         sdf.format(new Date());...

2010-09-26 21:41:31 281

原创 转:synchronized详解

Java对多线程的支持与同步机制深受大家的喜爱,似乎看起来使用了synchronized关键字就可以轻松地解决多线程共享数据同步问题。到底如何?――还得对synchronized关键字的作用进行深入了解才可定论。总的说来,synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果再细的分类,synchronized可作用于inst...

2010-09-26 21:19:24 94

原创 转:simpledateformat 线程不安全

如果一个资源或对象可能被多个线程同时访问,它就是一个共享资源;例如类的成员变量,包括类变量和实例变量,再比如对一个文件进行写操作等。一般情况下,对共享资源的访问需要考虑线程安全的问题。  如果一个对象的完整生命周期只在一个线程内,则不需要考虑线程安全,例如一个局部变量。下面为一个示例代码:public class C1 { public static java.text.Simpl...

2010-09-26 21:18:26 196

空空如也

空空如也

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

TA关注的人

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