深入理解jvm虚拟机

风景

每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境)上的。JRE中最重要的部分是Java虚拟机(JVM),JVM负责分析和执行Java字节码。Java开发人员并不需要去关心JVM是如何运行的。在没有深入理解JVM的情况下,许多开发者已经开发出了非常多的优秀的应用以及Java类库。不过,如果你了解JVM的话,你会更加了解Jav […]

JDK设计模式(十二)策略模式

1、定义 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 2、解决的问题 可以动态的改变对象的行为。 3、模式中的角色 1、环境对象(context):该类中实现了对抽象策略中定义的接口或者抽象类的引用。 2、 抽象策略对象(Strategy):它可由接口或抽象类来实现。 3、 具体策略对象(ConcreteStrategy):它封 […]

Apache和Nginx比较

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。使用事件驱动、异步非阻塞IO、多进程单线程、模块化,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,具有优秀的工作模式和事件处理模型。 1、工作模式比较 Apache工作模式 1、prefork模式(预派生模式):prefork是Unix平台上的默认多处理模块(MPM),使用多个子进程 […]

JDK设计模式(十一)代理模式

1、定义 为另一个对象提供一个替身或占位符以控制对这个对象的访问。 2、解决的问题 在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用,提供额外的处理或者不同的操作。 3、模式中的角色 1、抽象主题角色(Subject):声明真实对象和代理对象的共同接口; 2、 代理角色(Proxy):代理对象角色内部含有对真实对象的引用,从而可以操作真实对象 […]

JDK设计模式(十)享元模式

1、定义 采用一个共享来避免大量拥有相同内容对象的开销。 2、解决的问题 使用共享物件,用来尽可能减少内存使用量,以及分享资讯给尽可能多的相似物件;适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。 3、模式中的角色 内蕴状态存储在享元内部,不会随环境的改变而有所不同,是可以共享的;外蕴状态是不可以共享的,它随环境的改变而改变的,因此外蕴状态是由客户端来保持(因为环境的变化是由客户端引 […]

JDK设计模式(九)外观模式

1、定义 提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易访问。 2、解决的问题 通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,降低应用程序的复杂度,并且提高了程序的可维护性。封装一组交互类,一致地对外提供接口,简化子系统调用。 3、模式中的角色 1、外观角色(Facade):是模式的核心,他被客户client角色调用,知道各个子系统的 […]

JDK设计模式(八)装饰模式

1、定义 动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 2、解决的问题 在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象,防止类继承带来的爆炸式增长。 3、模式中的角色 1、 抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。 2、具体构件(ConcreteCom […]

JDK设计模式(七)组合模式

1、定义 将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 2、解决的问题 组合模式解耦了客户程序与复杂元素内部结构,从而使客户程序可以像处理简单元素一样来处理复杂元素。 3、模式中的角色 1、抽象构件(component):是组合中对象的接口,适当情况下,实现所有类共有方法的默认行为,声明一个接口,用于管理和访问component子部件 2 […]

JDK设计模式(六)桥接模式

1、定义 将抽象部分与实现部分分离,使它们都可以独立的变化 2、解决的问题 某个类具有两个或两个以上的维度变化,如果只是用继承将无法实现这种需要,或者使得设计变得相当臃肿,把变化部分抽象出来,使变化部分与主类分离开来,从而将多个维度的变化彻底分离,提供一个管理类来组合不同维度上的变化,通过这种组合来满足业务的需要,从达到抽象化、实现化和脱耦。 3、模式中的角色 1、 抽象化(Abstra […]

JDK设计模式(五)适配器模式

  1、定义 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2、解决的问题 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 3、模式中的角色 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 需要适配的类(Adaptee):需要适配的类或适配 […]