浅谈JVM

1:JVM 整体组成

  --》@1.类加载器(ClassLoader)

        @2.运行时数据区(Runtime Data Area)

        @3.执行引擎(Exection Engine)

        @4.本地库接口(Native Interface)

2:各个组成部分的用途

  --》程序在执行之前先要把java代码转换成字节码(class文件),JVM首先需要把字节码通过一定的方式 类加载器(ClassLoader) 把文件加载到内存中  运行时数据区 (Runtime Data Area),而字节码文件时JVM的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器 执行引擎 (Execution Engine)将字节码翻译成底层系统指令再交由CPU去执行,而这个过程需要调用其它的语言接口 本地库接口(Native Interface)来实现整个程序的功能,

3:运行数据区组成

  --》我们通常所说的JVM组成指的是运行数据区

     运行数据区又有5部分组成

         1:程序计数器   2:java虚拟机栈 3:本地方法栈 4:Java堆 5:方法区

程序计数器和Java虚拟机栈是内存私有

Java堆是虚拟机中内存最大的一块 被所有线程共享 (内存共享)

方法区不等于永生代(内存共享)

4:扩展 运行时常量池 直接内存

原文地址:https://www.cnblogs.com/xlhlx/p/10804903.html