内存泄露排查

现象: (1)数据导出无反应,处于等待状态 (2)其他页面相应特别慢 1、查看日志 [/enroll2//dataExport/create.json?_input_charset=UTF-8&filter_nature_group_id=36&filter_nature_topic_id=279&filter_nature_member_id=&filter_common_login_id=&fi ...

深入理解jvm虚拟机

每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境)上的。JRE中最重要的部分是Java虚拟机(JVM),JVM负责分析和执行Java字节码。Java开发人员并不需要去关心JVM是如何运行的。在没有深入理解JVM的情况下,许多开发者已经开发出了非常多的优秀的应用以及Java类库。不过,如果你了解JVM的话,你会更加了解Java的,并且你会轻松解决那些看似简单但是无从下手的问题。 本系列主要从以下几个方面进行分 ...

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角色调用,知道各个子系统的功能。同时根据客户角色已有的需求预订几种功能组合。 2、子系统角色 ...

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

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