• JAVA开发(JAVA虚拟机体系架构)


    JVM是一套和物理计算器结构类似的逻辑计算器。那么物理机有的功能它应该大部分都有才读。没错!JVM里面就是通过逻辑算法上实现了cpu,寄存器,程序运算器,内存等这些功能,就如同它复制出了一份物理机的样板。只是这一套样板专门是为java定制的。

    java类加载过程:

    java是编译后解析运行。 

    Classloader 是 JVM 的一个子系统,用于加载类文件。每当我们运行 java 程序时,它首先由类加载器加载。Java中有三个内置的类加载器。

    Bootstrap ClassLoader:这是第一个类加载器,它是扩展类加载器的超类。它加载包含Java标准版所有类文件的rt.jar文件,如java.lang包类、java.net包类、java.util包类、java.io包类、java.sql包类等。

    Extension ClassLoader:这是 Bootstrap 的子类加载器和 System 类加载器的父类加载器。它加载位于$JAVA_HOME/jre/lib/ext目录中的 jar 文件。

    System/Application ClassLoader:这是扩展类加载器的子类加载器。它从类路径加载类文件。默认情况下,类路径设置为当前目录。您可以使用“-cp”或“-classpath”开关更改类路径。它也被称为应用程序类加载器。

    2.类(方法)区

    Class(Method) 区域存储每个类的结构,例如运行时常量池、字段和方法数据、方法的代码。

    3.堆

    它是分配对象的运行时数据区。

    4.堆栈

    Java Stack 存储帧。它保存局部变量和部分结果,并在方法调用和返回中发挥作用。

    每个线程都有一个私有 JVM 堆栈,与线程同时创建。

    每次调用方法时都会创建一个新框架。框架在其方法调用完成时被销毁。

     

    5.程序计数器寄存器

    PC(程序计数器)寄存器包含当前正在执行的Java虚拟机指令的地址。

    6.原生方法栈

    它包含应用程序中使用的所有本机方法。

    7.执行引擎

    它包含了:

    虚拟处理器

    解释器:读取字节码流然后执行指令。

    Just-In-Time(JIT) 编译器:用于提高性能。JIT 同时编译具有相似功能的部分字节码,从而减少编译所需的时间。这里,术语“编译器”是指从Java虚拟机(JVM)的指令集到特定CPU的指令集的翻译器。

    8.Java 原生接口

    Java Native Interface (JNI) 是一个框架,它提供了一个接口来与用另一种语言(如 C、C++、Assembly 等)编写的另一个应用程序进行通信。Java 使用 JNI 框架将输出发送到控制台或与 OS 库进行交互。

  • 相关阅读:
    17 【Document 节点】
    500G+顶级学术及大厂数据集开放下载,科研学术赛题开发指南
    mysql中慢sql处理方案
    关于 Flink 状态与容错机制
    硬核,世界顶级级架构师编写2580页DDD领域驱动设计笔记,也太强了。
    适用于高云FPGA的JTAG
    Redis 性能影响 - 内存碎片和缓冲区
    【仿牛客网笔记】项目进阶,构建安全高效的企业服务——热帖排行
    E900V22C刷入CoreELEC、挂载云盘
    ESP32语音转文字齐护百度在线语音识别
  • 原文地址:https://blog.csdn.net/dongjing991/article/details/127799965