1 JDK1.7结构
1.1 JVM内存图
程序计数器:
线程私有的(每个线程都有一个自己的程序计数器), 是一个指针. 代码运行, 执行命令....方法区:
线程共享的(所有的线程共享一份), .class的信息, 类的信息, 方法的定义, 常量池, 静态变量等.
1.2 JDK1.7 堆内存结构
Young 年轻区(代)
Young区被划分为三部分...Virtual区:
最大内存和初始内存的差值,就是Virtual区。
这里提到的GC咱们后续继续介绍~
2....JDK1.8 结构
2.1 JVM运行时内存图
JDK1.8和JDK1.7的jvm内存最大的区别是, 在1.8中方法区是由元空间(元数据区)来实现的,常量池移到堆中.
1.8不存在方法区,将方法区的实现给去掉了...元空间: 存储.class 信息, 类的信息,方法的定义,静态变量等.而常量池放到堆里存储
2.2 JDK1.8堆内存结构
由上图可以看出,jdk1.8的内存模型是由2部分组成, 年轻代+年老代.