`
文章列表
tomcat中jvm配置与监控   1、配置 在tomcat中bin\catalina.bat或者catalina.sh文件中配置jvm参数 set JAVA_OPTS=-server -Xms768m -Xmx1364m -XX:PermSize=64m -XX:MaxPermSize=172m   xms:表示初始化堆栈大小 xmx:表示最大堆栈大小 XX:PermSize  表示初始化非堆栈内存大小 XX:MaxPermSize  表示最大非堆栈内存大小   非堆栈内存用于保存加载的class类,一般占用会在100m以内   2、监控 通过jconsole监 ...
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同(主要cup个数,内存不同),所以使用的GC种类也会不同(如何选择见GC种类及如何选择)。本文将注重介绍JVM、GC的一些重要参数的设置来提高系统的性能。 JVM内存组成及GC相关内容请见之前的文 ...
    这个异常(com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure Last packet sent to the server was X ms ago),是由于MySQL服务在长时间不连接之后断开了,断开之后的首次请求会抛出这个异常。那么既然是连接超时的问题, ...

9、装饰模式

装饰模式 1、装饰模式 装饰模式(Decorator)又名包装(Wrapper)模式,装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,可以在不创造更多的子类的模式下,将对象的功能加以扩展。   2、结构   装饰模式中的各个角色有: (1)抽象构件角色:给出一个抽象接口, (2)具体构件角色:对抽象构件角色的具体实现 (3)装饰角色:持有一个构件对象的实例,并定义一个与抽象接口一致的接口。 (4)具体装饰角色:对装饰角色的具体实现。   3、代码 (1)首相构件角色,一个蛋糕抽象类 public abstract class Cake { ...

8、组合模式

 组合模式 1、组合模式 组合模式属于对象中的结构模式,有时又叫做部分-整体模式。合成模式是将部分和整体的关系用树结构表示出来。 2、结构     以上类图结构涉及三种角色: 抽象构件角色:这是一个抽象角色,它给参加组合的对象规定一个接口,这个角色给出共有的接口和默认行为。 树叶构件角色:代表参加组合的树叶对象。 树枝构件角色:代表参加组合的有子对象的对象,并给出树枝构件对象的行为。   3、代码 以下是描述一个公司层次结构的实例 抽象构件角色company public abstract class Company { public Company() ...

7、桥梁模式

 桥梁模式(bridge pattern) 1、桥梁模式 桥梁模式的用意是“使抽象化和实现化解耦,使得两者可以独立的变化”。   抽象化 存在于多个实例之间共同的概念性联系,就是抽象化。   实现化 抽象化给出的具体实现就是实现化。   解耦 所谓耦合就是两个实体之间的某种强关联,将他们之间的强关联去掉就是解耦,一般情况下通过聚合代替继承实现解耦。    2、结构图    在abstraction中包含implement变量实现两个类之间的聚合关系,降低两个类之间的耦合。   3、代码  在java面向对象编程中接口是解耦的做好办法 Abstractio ...
设配器模式 1、结构 适配器模式就是将一个接口转换为另一种接口以便使用。例如实例中需要将ps2port设备转换为usbport设备以便computer使用这时就需要一个转换器(适配器)PS2PortToUsbPort实现UsbPort接口   2、代码 (1)适合电脑使用的use接口 public interface UsbPort { public void exe(); }   (2)不适合电脑使用的ps2接口 public interface PS2Port { public void exe(); }   (3)ps2实体类 ...

4、原型模式

原型模式 1、结构 原型类必须实现一个标示接口Cloneable,表示这个类支持复制,否则调用clone方法会报CloneNotSupportException异常。   2、浅克隆和深克隆 (1)浅克隆 被复制对象的所有变量都与原来的对象相同,而所有对其他对象的引用都指向原来的对象。 (2)深克隆 深克隆不仅被复制的所有变量与原理啊对象相同,而且其他对象的引用也会被创建一个新对象。   3、代码 原型类 public class Prototype implements Cloneable { private ArrayList list = null; ...

3、单例模式

单例模式 1、三大要点 (1)只能有一个实例 (2)自己创建实例 (3)必须自行向整个系统中提供这个实例 因此单例类中的构造方法必须是私有方法   2、饿汉式单例类 /** * 饿汉式单例 * @author Administrator * */ public class Singeton { /** * 加载对象时创建Singeton类 */ private static Singeton instance = new Singeton(); /** * 构造方法为私有 */ private Singeton() ...
 工厂方法模式 工厂方法模式是类的创建模式,又叫虚拟构造子方法或者多态工厂模式。 1、结构图       核心的工厂类不在负责产品的创建,而具体创建的工作交给子类去做。    
简单工厂模式 简答工厂模式是类的创建模式,又可以叫静态工厂方法模式。 1、结构图   简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 2、与其他模式关系  (1)单例模式 单例模式使用了简单工厂模式,但不是简单工厂模式的退化模式。单例模式要求其构造方法是私有的,客户端不能直接实例化,必须通过静态方法实例化对象,而且单例类自身是自身的工厂角色。 3、优缺点 (1)优点 避免客户端直接创建对象,而仅仅负责调用对象,实现类高内聚低耦合。 (2)缺点 由于工厂类集中了所有的产 ...

5、动态代理

1、Java的动态代理机制代理模式是常用的Java设计模式。代理类主要负责为委托类预处理消息、过滤信息、把消息转发给委托类,以及事后处理信息等。动态代理类不仅简化了编程工作,而且提高了软件系统的扩展性和可维护性。我们可以通过实现java.lang.reflect.InvocationHandler接口提供一个执行处理器,然后通过java.lang.reflect.Proxy得到一个代理对象,通过这个代理对象来执行业务逻辑方法,在业务逻辑方法被调用的同时,自动调用会执行处理器。 注意:被代理对象至少实现一个接口 /** * 动态代理对象处理类 * @author Administr ...
如果你想从oracle数据库中查询一个特定值所在的表的名称和字段名称,而数据库中表的数量很多无法手动一个一个来查看,这时编写plsql让数据库自己查询就显得非常必要了。 在这里我编写了一个plsql来查询数据库中值为“57d486c2:1385142d983:”的数据表名称和字段名称。 --查询oracle数据库中该用户表中字段值为str的表名称和字段名称 declare str varchar2(100) := '57d486c2:1385142d983:'; sqlstr varchar2(4000); tablename varchar2(50); columnname v ...
1、hibernate必备jar包 antlr-2.7.6.jarasm.jarc3p0-0.9.0.jarcglib-2.1.3.jarcommons-collections-2.1.1.jarcommons-logging-1.0.4.jardom4j-1.6.1.jarehcache-1.2.jarhibernate3.jarjunit-4.10.jarlog4j-1.2.11.jar jta.jarmysql-connector-java-5.1.14.jar   2、hibernate必须配置文件 hibernate.cfg.xmllog4j.properties   并 ...

javascript验证

为了提交web页面开发效率,自己封装了一套web页面输入框验证方法: 1、首先是ArrayList对象 该ArrayList对象和java中ArrayList对象用法基本一样,包含了java中ArrayList中大部分方法,为存取对象提供了便利。 /********************************************************** * JavaScript实现的ArrayList类 * * @author {yangl} * @version $Revision: 0.5 $ $Date: 2008/04/02 15:00:00 $ * @d ...
Global site tag (gtag.js) - Google Analytics