• 技术文章 >Java >Java入门

    java虚拟机的基本组成介绍

    王林王林2020-11-04 16:11:09转载1172

    java虚拟机的基本组成:

    (视频教程分享:java课程

    类加载子系统、运行时数据区(JVM内存模型)、执行引擎、本地方法接口

    4f58730c72b6613bd7b189531a67294.png

    类加载器:

    主要负责把编译好的.class字节码文件装入运行时数据区,以供运行时数据区使用。

    运行时数据区(JVM内存模型):

    1、堆:主要存放对象,多线程共享(垃圾回收的主要区域)。

    2、方法区:主要存放常量,静态变量,类元信息(类名,方法,字段,版本等等)。

    3、线程栈:存储方法参数、局部变量、中间运算结果、对象的引用、并且提供部分其它模块工作需要的数据等。

    4、本地方法栈: 本地方法栈为虚拟机使用到的native方法服务。

    5、程序计数器:当前线程所执行的字节码的行号指示器,当执行本地方法时为null。

    执行引擎:

    执行引擎是JVM执行Java字节码的核心,执行方式主要分为解释执行、编译执行、自适应优化执行、硬件芯片执行方式。

    本地方法接口:

    非java语言实现的方法接口。

    jdk1.8 jvm内存结构图:

    fe1031b4ef7556a7830dbc498912cbf.png

    JVM内存模型 1.8之前 和 1.8区别:

    011249ed99ee40270d0be62e0833298.png

    主要差别:

    1、元数据区取代了永久代。元空间的本质和永久代类似,都是对JVM规范中方法区的实现(ps:方法区是java虚拟机中的规范,而永久代和元空间都是方法区的一种实现)。

    2、元数据区从虚拟机中移动到了本地内存。

    3、jdk1.8中常量池和静态变量移动到了堆中存储(逻辑上还是属于方法区)

    相关推荐:java入门

    以上就是java虚拟机的基本组成介绍的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除
    专题推荐:java 虚拟机 基本组成
    上一篇:算法学习——java实现最长公共子序列 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • eclipse启动时提示无法创建java虚拟机• 启动eclipse提示java虚拟机无法创建• eclipse打不开java虚拟机• 创建java虚拟机失败的解决方法
    1/1

    PHP中文网