1、类加载子系统 :负责从文件系统或者网络中加载 Class 信息,加载的信息存放在 一块称之为方法区的内存空间

2、方法区:存放类信息,常量信息,常量池信息,包括字符串字面量和数字常量等

3、Java 堆:在 java 虚拟机启动的时候建立 java 堆,他是 java 程序最主要的内存工作区域,几乎所有的对象实例都存放在 java 堆中,堆空间是所有线程共享的

4、直接内存:java 的 NIO 库允许 java 程序使用直接内存,从而提高性能,通常直接内存性能要优于 java 堆。读写频繁的场合可能会有限考虑

5、栈:每个虚拟机线程都有一个私有的栈,一个线程的 java 栈在线程创建的时候 被创建,java 栈中保存着局部变量、方法参数、同时 java 的调用、返回值等

6、本地方法栈:调用本地方法,本地方法一般是用 c 编写的

7、垃圾回收系统:垃圾回收系统是 java 的核心,也是必不可少的,java 有一套自己进行垃圾清理的机制,开发人员无需手工清理

8、pc寄存器:寄存器也是每个线程私有的空间,java 虚拟机会为每个线程创建pc 寄存器,在任意时刻,一个 java 线程总是在执行一个方法,这个方法被称为当前方法,如果当前方法不是本地方法,则 pc 寄存器的值为 undefined,寄存器存放如当前环境指针,程序计数器,操作栈指针,计算的变量指针等信息

9、执行引擎:虚拟机最为核心的部分,它负责执行虚拟机的字节码

jvm 虚拟机的组成部分的更多相关文章

  1. 【JVM虚拟机】(9)-- JVM是如何处理异常的

    [JVM虚拟机](9)-- JVM是如何处理异常的 上篇博客我们简单说过异常信息是存放在属性表集合中的Code属性表里,那么这篇博客就单独讲Code属性表中的exception_table. 在讲之前 ...

  2. 【JVM虚拟机】(8)--深入理解Class中--方法、属性表集合

    #[JVM虚拟机](8)--深入理解Class中--方法.属性表集合 之前有关class文件已经写了两篇博客: 1.[JVM虚拟机](5)---深入理解JVM-Class中常量池 2.[JVM虚拟机] ...

  3. 深入理解JVM虚拟机11:Java内存异常原理与实践

    本文转自互联网,侵删 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutori ...

  4. 设置TOMCAT的JVM虚拟机内存大小

    你知道如何设置TOMCAT的JVM虚拟机内存大小吗,这里和大家分享一下,JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会影响程序的性能. 设置 ...

  5. JVM虚拟机(一) 内存区域

    JVM虚拟机内存组成: 如下图:                       1. 程序计数器: (1)是一块较小的内存空间:可以看做当前程序执行子界面的行号指示器,字节码解析器执行的时候就是根据这个 ...

  6. java语言与jvm虚拟机简介

    一.java语言 1.1 支持面向对象编程oop 强调支持,因为java同样可以面向过程编程. oop的三大特性是:封装.继承.多态. 封装主要针对成员变量而言,oop的思想要求成员变量均为私有,不应 ...

  7. 翻译:JVM虚拟机规范1.7中的运行时常量池部分(二)

    本篇为JVM虚拟机规范1.7中的运行时常量池部分系列的第二篇. 4.4.4. The CONSTANT_Integer_info and CONSTANT_Float_info Structures ...

  8. 翻译:JVM虚拟机规范1.7中的运行时常量池部分(一)

    原文链接: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4 Java Virtual Machine i ...

  9. 【JVM虚拟机】(7)---深入理解Class中-属性集合

    #[JVM虚拟机](7)---深入理解Class中-属性集合 之前有关class文件已经写了两篇博客: 1.[JVM虚拟机](5)---深入理解JVM-Class中常量池 2.[JVM虚拟机](6)- ...

随机推荐

  1. cogs 1143. [石门中学2009] 切割树

    1143. [石门中学2009] 切割树 ★   输入文件:treecut.in   输出文件:treecut.out   简单对比时间限制:1 s   内存限制:128 MB treecut 题目描 ...

  2. [HTML 5] aria-hidden

    You want to use aria-hidden to prevent screen reader to access some content should be hidden from us ...

  3. 【C语言】编写函数实现字符串旋转

    //编写函数实现字符串旋转 #include <stdio.h> #include <assert.h> #include <string.h> void reve ...

  4. android:padding 与 android:margin的差别

    android:padding    Padding 为内边框,指该控件内部内容,如文本/图片距离该控件的边距 android:margin   Margin 为外边框,指该控件距离边父控件的边距

  5. Android应用之——自己定义控件ToggleButton

    我们经常会看到非常多优秀的app上面都有一些非常美丽的控件,用户体验非常好.比方togglebutton就是一个非常好的样例,IOS系统以下那个精致的togglebutton现在在android以下也 ...

  6. 创建多线程的HttpClient

    在实际的应用中,我们的联网应用程序里应该有一个HttpClient,并将其用于所有的HTTP通信.这就可能在同一个Http Client同时发出多个请求,也就产生了多线程的问题.幸运的是,在HttpC ...

  7. 使用sed -i对文本字符串进行增删改查

    sed是一个很好的文件处理工具,本身是一个管道命令,主要以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作.1. sed命令行格式sed [选项] [命令] 1.1 选项-n,使用安 ...

  8. Centos7 minimal 系列之Redis集群搭建(六)

    一.redis安装 借鉴上篇博客:http://www.cnblogs.com/WJ--NET/p/8176071.html 二.集群搭建 2.1.创建文件夹 mkdir redis_cluster ...

  9. SQlException 对象名无效

  10. WPF常用资源

    Textbox error template<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control} ...