上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 43 下一页
摘要: adapter适配器模式将两个不兼容的类纠合在一起,属于结构型模式,需要有adaptee(被适配者)和adapter(适配器)类再生的两种方式;组合composition和继承(inheritance)示例代码:/*** 圆形桩接口** @time 下午11:02:08* @author retacn yue* @Email zhenhuayue@sina.com*/public interface IRoundPeg {public void insertIntohole(String msg);}/*** 圆形桩** @time 下午10:53:09* @author retacn yue 阅读全文
posted @ 2012-10-02 23:09 retacn_yue 阅读(120) 评论(0) 推荐(0) 编辑
摘要: prototype原型模式用原型实例指定创建对象种类,并通过拷贝这些原型对象创建新的对象示例代码如下:/*** 勺子的抽象类** Object.clone()** 方法可以合法地对该类实例进行按字段复制** @time 下午09:47:05* @author retacn yue* @Email zhenhuayue@sina.com*/public abstract class AbstractSpoon implements Cloneable {String spoonName;protected Object clone() throws CloneNotSupportedExcept 阅读全文
posted @ 2012-10-01 21:56 retacn_yue 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 设计模式 builder将一个复杂的对象构建与他的表示分离,使同样的构建过程可以创建不同的表示把创建和部件的创建分别开来示例代码:/*** 部件实体** @time 下午11:03:52* @author retacn yue* @Email zhenhuayue@sina.com*/public interface Part {}/*** 成品** @time 下午11:05:14* @author retacn yue* @Email zhenhuayue@sina.com*/public class Product {public String name = "xxxx&quo 阅读全文
posted @ 2012-09-30 23:25 retacn_yue 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 虚拟内存管理查看进程: ps显示结果: PID TTY TIME CMD 1979 pts/0 00:00:00 bash 2048 pts/0 00:00:00 ps查看bash的虚拟地址空间: cat /proc/1979/maps 或是pmap 1979 显示结果:08048000-08123000 r-xp 00000000 08:01 786438 /bin/bash08123000-08124000 r--p 000da000 08:01 786438 /bin/bash08124000-08129000 rw-p ... 阅读全文
posted @ 2012-09-29 13:09 retacn_yue 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 工厂模式:factory工厂模式就相当于创建实例对象的new,用于制造孩子的机器创建对象的一般方法: Sample s=new Sample();示例代码:/*** 2设计模式之工厂模式(factory)** @time 下午05:10:37* @author retacn yue* @Email zhenhuayue@sina.com*/public class Factory {//public static Sample creator(int witch) {if (1 == witch) {return new SampleA();} else if (2 == witch) {re 阅读全文
posted @ 2012-09-28 18:03 retacn_yue 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 并发流程控制CountDownLatchpublicvoidtest(){finalintCOUNT=10;finalCountDownLatchcountDownLatch=newCountDownLatch(COUNT);for(inti=0;i<COUNT;i++){Threadthread=newThread("workThread"+i){@Overridepublicvoidrun(){//当你启动了一个线程,需要等到他结束countDownLatch.countDown();}};thread.start();}try{countDownLatch.aw 阅读全文
posted @ 2012-09-28 16:43 retacn_yue 阅读(201) 评论(0) 推荐(0) 编辑
摘要: ConcurrentHashMap并没有实现Lock-Free,只是使用了分离锁的办法使得能够支持多个writer开发,但是他需要更多的内存同样的思路用于更新数据库----乐观锁publicclassSequenceDao{publicbooleancompareAndSet(Stringname,intvalue,intexpect){Map<String,Object>parameters=newHashMap<String,Object>();parameters.put("name",name);parameters.put("va 阅读全文
posted @ 2012-09-28 16:42 retacn_yue 阅读(214) 评论(0) 推荐(0) 编辑
摘要: Synchronized是lock的一种简化实现,一个lock可以应对多个condition而synchronized把lock和condiiton合并了,一个synchronizedLock只对应一个condition在jdk中他们的效率差不多注:不要在lock和condition上使用waitnotifynotifyAll方法使用AtomicIntegerclassCounter{privatevolatileintcount=0;//若要线程安全执行count++,需要加锁publicsynchronizedvoidincrement(){count++;}publicintgetCou 阅读全文
posted @ 2012-09-28 16:40 retacn_yue 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 阻塞队列(生产者和消费者开发模式)三种常用的阻塞队ArrayBlockingQueue<T>;LinkedBlockingQueue<T>;SynchronousQueue<T>//在队列满时被阻塞ArrayBlockingQueue<String>arrayBlockingQueue=newArrayBlockingQueue<String>(19);try{arrayBlockingQueue.put("");}catch(InterruptedExceptione){e.printStackTrace();} 阅读全文
posted @ 2012-09-28 16:38 retacn_yue 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 新建线程并启动的几种方法:1privateThreadthread=newThread("myThread");Thread.start();2privateclassmyThreadextendsThread{@Overridepublicvoidrun(){}}myThreadthread=newmyThread().start();3privateThreadthread=newThread(){//构造器@Overridepublicvoidrun(){}};thread.setName("myThread");Thread.start();4T 阅读全文
posted @ 2012-09-28 16:37 retacn_yue 阅读(185) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 43 下一页