- 浏览: 30497 次
- 性别:
- 来自: 北京
最新评论
文章列表
Tomcat设置PermGen Space和Heap Size
PermGen Space
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JS ...
使用JMX透过防火墙远程监控tomcat服务
JDK的bin目录下有jvisualvm或jconsole可以监控本地和远程jvm实例的运行动态(包括cpu,内存等), 对于性能分析或内存泄露分析等极其方便。下面介绍如何通过这两个工具远程监控有防火墙的linux上的tomcat服务。 废话少说,直接上正题:
我的测试环境是:centos 6.2(IP为192.168.1.118)上通过jsvc将tomcat 7作为服务启动。
下载http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-7/v7.0.28/bin/extras/catalina-j ...
原文链接 http://blog.lixiphp.com/centos-linux-memcache-nginx-php-install/
一、源码包准备 也可以到附件下载
服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-v1.4.4 。
下载:http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz
另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,
libevent的最新版本是libevent-1.4.13 ...
安装准备:下载 jdk-6u23-linux-i586.bin
jdk下载路径http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u32-downloads-1594644.html
apache-tomcat-7.0.12.tar.gz
文件
请根据自己的系统版本为32
、64
位,下载相应的版本
查看、卸载系统自带jdk
[root@localhost ~ ]#rpm –qa |grep gcj
java-1.5.0-gcj-1.5.0.0-29.1.el6. ...
Linux修改ssh端口22
vi /etc/ssh/ssh_config
vi /etc/ssh/sshd_config
然后修改为port 8888
以root身份service sshd restart (redhat as3)
使用putty,端口8888
Linux下SSH默认的端口是22,为了安全考虑,现修改SSH的端口为1433,修改方法如下 :
/usr/sbin/sshd -p 1433
为增强安全
先增加一个普通权限的用户:
#useradd uploader
...
引用 http://www.infoq.com/cn/news/2011/07/hibernateogm
近日,Hibernate Validator、Hibernate Search等项目的开发者Emmanuel Bernard宣布了Hibernate OGM。这个新框架的目标旨在通过JPA为NoSQL数据存储提供一个公共的接口。OGM是Object Grid Mapping的缩写。
InfoQ有幸采访到了Emmanuel Bernard以深入了解Hibernate OGM以及它将要支持的NoSQL后端存储。Emmanuel说他们将从Infinispan开始,因为团队之间能够更 ...
类装载器工作机制
类装载器就是寻找类的节码文件并构造出类在JVM 内部表示对象的组件。在Java 中,
类装载器把一个类装入JVM
中,要经过以下步骤:
1. 装载:查找和导入Class 文件;
2. ...
/**
* 获取一个Class类有三种方法:
* @author Morgan
*/
public class GetClass {
public static void main(String[] args) {
//第一种获取方法,直接了当
Class<String> class1 = String.class;
System.out.println(class1);
//第二种获取方法,对实体类运用方法
String str = "just do it";
Class< ...
本文来自 smallboy_5的专栏 http://blog.csdn.net/smallboy_5/article/details/2119123
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。
Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些 Collection ...
观察者模式Observer
- 博客分类:
- 设计模式
观察者模式Observer又叫发布订阅(Publish/Subscribe)模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对相同时间是某一个主题的对象。这个主体对象在状态发生变化时,会通知所有观察找对象,使它们能够自动更新。
Subject类,可翻译为主题或抽象统治者,一般用一个抽象类或者一个接口实现。他把所有观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主体提供一个接口,可以增加和删除观察者对象。
public abstract class Subject {
private List<Observer> ob ...
建造者模式
如果你需要将一个复杂对象的构建与他的表示分离,是的同样的构建过程可以创建不同的表示的意图时,我们需要应用于一个设计模式,建造者(Builder)模式,又叫生成器模式。建造者模式可以将一个产品的生成过程分割开来,从而可以是一个建造过程生成具有不同的内部对象。如果我们用了建造者模式,那么哟过户就只需要制定需要建造的类型就可以得到他们,而具体建造的过程和细节就不需要知道了。
建造者模式: (Builder) 将一个复杂对象的构建与他的表示分离,是的同样的构建过程可以创建不同的表示。
建造者模式的基本代码
public abstrac ...
外观模式Facade,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个几口使得这一子系统更加容易使用
何时使用外观模式
首先,再设计初期阶段,应该要有意识的将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的曾与层之间建立外观Facade,这样可以为复杂的子系统提供一个简单的接口,是的耦合大大降低。
其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用时候也都会产生很多很小的类,这本是好是,但也该外部调用他们的用户程序带来了使用上的困难,增加Facade可以提供 ...
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法是的子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。模板方法模式提供一个很好的方法复用平台。当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变行为的纠 ...
原型模式
Prototype,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
相关代码
public abstract class Prototype implements Cloneable {
private String id;
public Prototype(String id){
this.id = id;
}
public String getId() {
return id;
}
public abstract Prototype clone2();
}
...
简单工厂 VS 工厂方法
简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。例如计算器,让客户端不用管该用哪个类的 ...