• (1)java虚拟机概念和结构图


    java虚拟机解构图一

    java虚拟机解构图二

    java虚拟机结构图三

    【1】类加载系统
            --->负责从文件系统或网络中加载class信息,存放至方法区的内存空间
    【2】java堆
            --->虚拟机启动时建立。java主要内存工作区域。
            --->存放:java对象实例。
            --->所有线程共享
    【3】方法区
            --->存放:class信息,运行时常量池信息,字符串字面量,数字常量(class文件中常量池部分的内存映射)
    【4】直接内存
            --->java的NIO库允许java程序使用直接内存。
            --->在java堆外的,直接向系统申请的内存空间。
            --->访问直接内存的速度优于java堆。出于性能考虑,读写频繁的场合可能会考虑使用直接内存。由于直接内存在堆外,因此它的大小不会直接受限于Xmx指定的最大堆大小,但是系统内存是有限的。java堆和直接内存的总和依然受限于操作系统给出的最大内存
    【5】垃圾回收系统
           --->java虚拟机重要组成部分。
           --->对方法区,java堆,直接内存进行回收垃圾空间。
    【6】java棧
            --->每一个java虚拟机线程都有一个私有的java棧。
            --->一个线程的java棧在线程创建的时候被创建。
            --->java棧中保存着帧信息(局部变量,方法参数)和方法调用和返回密切相关
     【7】本地方法棧
            --->和java棧非常相似。
            --->不同在于java棧用于java的方法调用。本地方法棧用于本地方法的调用。
     【8】PC寄存器
            --->也是每一个线程私有的空间。java虚拟机为每一个java线程创建pc寄存器。
            --->一个java线程总是在执行一个方法,这个正在被执行的方法称为当前方法。如果当前方法不是本地方法,pc寄存器就会执行当前正在被执行的指令。如果当前方法是本地方法,那么pc寄存器的值就是undefined
     【9】执行引擎
            --->java虚拟机的最核心组件之一,他负责执行虚拟机的字节码。

  • 相关阅读:
    (转载)SPSS之判别分析——决策树——以iris.sav为例
    (转载)SPSS之判别分析——以iris.sav为例
    python实现GA求二元函数最大值(来自知乎)
    (转载)Python在数学建模中的简单应用
    (转载)Python3 列表,数组,矩阵的相互转换
    【翻译自mos文章】在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要"compat-libstdc++"包
    Material Design Support 8大控件介绍
    关于程序猿的技术发展讨论
    《C程序猿从校园到职场》带领大家从校园走向职场
    IE8下submit表单没反应
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/4734589.html
Copyright © 2020-2023  润新知