zoukankan      html  css  js  c++  java
  • (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虚拟机的最核心组件之一,他负责执行虚拟机的字节码。

  • 相关阅读:
    将WinServers2019打造成家用系统
    WindowsServers2019上手体验
    【代码模板】不存在的NOIP2017
    NOIP2018初赛翻车总结
    【初赛】各种排序算法总结
    【Luogu1996】约瑟夫问题(模拟,解法汇总)
    【初赛】NOIP2018程序模板
    MongoDB
    非关系型数据库----MongoDB
    用Python来操作redis 以及在Django中使用redis
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/4734589.html
Copyright © 2011-2022 走看看