**JDK 1.7 及以前的内存分析:

JVM调优之内存分析_第1张图片

这里的Perm 叫永久方法区,存放静态变量和方法等。

**JDK1.8及以后的 内存分析:

JVM调优之内存分析_第2张图片

存放静态变量或方法在JDK1.8及以后叫元组。

**
java程序 shell 脚本常规启动文件:

JVM调优之内存分析

JDK 1.8 及以后主要是G1回收器,采用了另外一种完全不同的方式组织堆内存,堆内存被划分为多个大小相等的内存块(Region),每个Region是逻辑连续的一段内存,结构如下:
每个Region被标记了E、S、O 和 H,其中H是以往算法中没有的。它代表大对象,这表示这些Region存储的是巨型对象(humongous object,H-obj),当新建对象大小超过Region大小一半时,直接在新的一个或多个连续Region中分配,并标记为 H。

JDK 1.8 及以后才有 NIO编程模式,所以线程数一般设置为 2*CPU (core)即可。而JDK1.7及以前是 BIO模式,在做高并发压测时,是需要设置线程数的,默认为 200;