前言

  • 细节介绍可以点我跳转,本篇只介绍两个版本之间的区别;

1.8之前版本

在这里插入图片描述

JVM1.8之后版本

在这里插入图片描述

版本区别介绍

可以看到1.8之前版本,线程共享为两个区域:堆与方法区;
其中方法区只是JVM虚拟机规范的一部分,不是实际的实现;

直接内存

  • 是JVM以外的本地内存;

区别一(方法区)

  • 1.8版本之后,使用元数据区实现了方法区,之前是使用永久代来实现方法区,大小是启动时固定好的;
  • 元空间不在虚拟机中,而是使用本地内存,并且大小可以自动增长,减少了OOM(内存溢出)的几率;

区别二(堆区)

  • Java7之后运行时常量池从方法区移到了这里,为Java8移出永久代做好准备;
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐