美文网首页Java 技术
Java JVM基本构成

Java JVM基本构成

作者: 撑起头顶的天 | 来源:发表于2018-01-31 14:40 被阅读8次

JVM基本构成:

VM基本构成

从上图可知,JVM主要包括四个部分:

1.类加载器(ClassLoader)

在JVM启动时或者在类运行时将需要的class加载到JVM中。(下图表示了从java源文件到JVM的整个过程,可配合理解。

类加载器

2.执行引擎

负责执行class文件中包含的字节码指令;

3.内存区(也叫运行时数据区)

是在JVM运行的时候操作所分配的内存区。运行时内存区主要可以划分为5个区域,如图:

内存区

方法区(Method Area):用于存储类结构信息的地方,包括常量池、静态变量、构造函数等。虽然JVM规范把方法区描述为堆的一个逻辑部分, 但它却有个别名non-heap(非堆),所以大家不要搞混淆了。方法区还包含一个运行时常量池。

java堆(Heap):存储java实例或者对象的地方。这块是GC的主要区域。从存储的内容我们可以很容易知道,方法区和堆是被所有java线程共享的。

java栈(Stack):java栈总是和线程关联在一起,每当创建一个线程时,JVM就会为这个线程创建一个对应的java栈。在这个java栈中又会包含多个栈帧,每运行一个方法就创建一个栈帧,用于存储局部变量表、操作栈、方法返回值等。每一个方法从调用直至执行完成的过程,就对应一个栈帧在java栈中入栈到出栈的过程。所以java栈是现成私有的。

程序计数器(PC Register):用于保存当前线程执行的内存地址。由于JVM程序是多线程执行的(线程轮流切换),所以为了保证线程切换回来后,还能恢复到原先状态,就需要一个独立的计数器,记录之前中断的地方,可见程序计数器也是线程私有的。

本地方法栈(Native Method Stack):和java栈的作用差不多,只不过是为JVM使用到的native方法服务的。

4.本地方法接口

主要是调用C或C++实现的本地方法及返回结果。

相关文章

  • Java JVM基本构成

    JVM基本构成: 从上图可知,JVM主要包括四个部分: 1.类加载器(ClassLoader) 在JVM启动时或者...

  • JVM面试详解

    1、JVM构成 Java栈是线程私有的,每个线程创建的同时都会创建JVM栈,JVM栈中存放的为当前线程中局部基本类...

  • Java虚拟机面试题

    Java虚拟机面试题 1、JVM内存区域。 JVM基本构成 从上图可知,JVM主要包括四个部分: 1.类加载器(C...

  • JVM——内存管理机制

    一. JVM的基本架构 二.什么是JVM JRE = Java API + JVM Java虚拟机的本质: 是一个...

  • Java基础(四)

    public static int v = 8080;JVM JVM 基本概念 JVM 是可运行 Java 代码的...

  • 一文概述JVM入门知识

    目录 JVM的介绍 JVM的架构图 为什么说Java程序是与平台无关的 JVM基本介绍 全称: Java Virt...

  • JVM、计算机内存模型、Java内存模型深度解析

    1、JVM(Java Virtual Machine)1.1 组成部分JVM由三个主要的子系统构成: 类加载子系统...

  • JVM类加载学习二-类加载机制学习

    JVM类加载机制 @(Java)[JVM|类文件结构] [TOC] 基本介绍 JVM的类加载机制:JVM把描述类的...

  • day 47 Tomcat

    Tomcat基本介绍Tomcat安装项目演示 Tomcat基本介绍 JVM基本介绍 Java业务都是运行在Java...

  • 高级Java开发面试常用题的答案2

    三、JVM · JVM堆的基本结构。 java_heap_struct.jpg 参考阅读:JVM内存堆布局图解分析...

网友评论

    本文标题:Java JVM基本构成

    本文链接:https://www.haomeiwen.com/subject/ftokzxtx.html