1 . PermGen space
全称是Permanent Generation space,是指内存的永久保存区域.
用于存放,Class和Meta的信息,Class在被 Load的时候被放入 PermGen space区域.所以当我们的应用服务器在启动的时候会加载很多的CLASS的时候会出现OutOfMemoryError: PermGen spac的错误. 解决方法自然也就是要加大应用服务器在jvm启动时候所需要初始化的perGen space的size 了,一般是在应用服务器的启动参数的jvm配置 中加入 :
  -XX:MaxNewSize=256m -XX:MaxPermSize=256m

2. Heap space
Heap psace与permGen区域存放的东西不同,主要是存放java运行时产生的对象,他们是GC(Garbage Collection)在运行期间会定时进行清理的.所以当在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出"java.lang.OutOfMemoryError: Java heap space "的错误.原因是对象的产生上限以达到jvm的上限 . 解决办法自然是设置更大的jvm的heap space size:
这就是为什么我们要在应用服务器的jvm启动参数上加上 -Xms256m -Xmx256m  参数的原因.