- 博客(8)
- 资源 (3)
- 收藏
- 关注
原创 【设计模式】Builder模式
定义Separate the construction of a complex object from its representation so that the same construction process can create different representations.将复杂对象的创建过程与该对象的表示分离开来,以便让同一个创建过程可以创建出不同的表示。类图
2013-11-17 16:26:08 3434
原创 【OSGi】Service
服务服务就是:为别人完成的工作。目的:是让别人为你工作,而不是试图自己做一切事情。和方法调用的区别:服务是指提供者及其使用者之间的一个契约,使用者不关心服务的具体实现,甚至不关心是谁提供的,只要遵守约定的契约即可。面向服务的设计方式鼓励用即插即用的方式来进行软件开发,这意味着在开发、测试、部署、维护过程中有更大的灵活性。接口+依赖注入Java中一般是基于接口编程的,然而除非我们知道具体的接口实现类,否则我们无法创建一个接口实例。传统Java可以通过依赖注入(Dependency Inje
2013-11-17 09:56:02 13837 5
翻译 【Effective Java】Ch4_Class:Item15_使可变性最小化
不可变类是指其实例不可被修改的类。实例中的所有信息都是在创建实例时提供的,并且在对象生命周期内保持不变。JDK中有许多这种不可变类,例如String、基本类型包装类、BigInteger、BigDecimal。不可变类有许多优点:易于设计、易于实现、易于使用。它们更不容易出错,并且更安全。
2013-11-07 10:45:10 4433
原创 ThreadLocal的正确用法
ThreaLocal的JDK文档中说明:ThreadLocal instances are typically private static fields in classes that wish to associate state with a thread。如果我们希望通过某个类将状态(例如用户ID、事务ID)与线程关联起来,那么通常在这个类中定义private static类型的ThreadLocal 实例。
2013-11-06 12:36:50 54854 1
原创 HashMap实现原理分析
HashMap其实也是一个线性的数组实现的,所以可以理解为其存储数据的容器就是一个线性数组。这可能让我们很不解,一个线性的数组怎么实现按键值对来存取数据呢?这里HashMap有做一些处理。 首先HashMap里面实现一个静态内部类Entry,其重要的属性有 key , value, next,从属性key,value我们就能很明显的看出来Entry就是HashMap键值对实现的一个基础bean,我们上面说到HashMap的基础就是一个线性数组,这个数组就是Entry[],Map里面的内容都保存在Ent
2013-11-05 15:23:28 452740 153
翻译 【NIO】2. Selector
Selector允许单线程处理多个Channel,能够检测一到多个Channel,并能够知晓通道是否为诸如读写事件做好准备。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。如果你的应用打开了多个连接(通道),但每个连接的流量都很低,使用Selector就会很方便。例如,在一个聊天服务器中。
2013-11-05 15:18:08 4994
翻译 【NIO】1. Channel、Buffer
基本上,所有的 IO 在NIO 中都从一个Channel 开始。Channel 有点象流。数据可以从Channel读到Buffer中,也可以从Buffer 写到Channel中。Java NIO的通道类似流,但又有些不同: 既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的; 通道可以异步地读写; 通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。
2013-11-05 15:15:36 5394
commons-modeler-2.0.1.jar + commons-logging-1.1.2-bin.zip
2013-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人