• 3:第一章:认识JVM规范2:JVM规范,简介;


    说明:

    (1)简单介绍JVM规范,了解JVM规范是什么东西;

    目录

    1.JVM规范,简介;

    2.JVM规范,涵盖了哪些内容;(PS:虚拟机规范没必要过于深究,了解即可)


    虚拟机一定要有规范(或称标准),比如class文件如果没有一定的规范的话,虚拟机就无法认识这个class;

    1.JVM规范,简介;

    (1)虚拟机不认识.java文件,其只认识.class文件;

              ● 我们编写.java程序的时候,我们需要遵守java的语法规范;

              ● 我们往虚拟机中仍.class文件的时候,这个.class文件要符合虚拟机的规范;

    (2)只要一个文件是一个【符合虚拟机的规范的.class文件】,虚拟机都可以装载并运行;

              ● 那么此时,就变相提供了开发语言的无关性;

              ● 比如,我们使用java语言开发的程序可以编译为【符合虚拟机的规范的.class文件】;;;我们使用jRuby语言开发的程序也可以编译为【符合虚拟机的规范的.class文件】;

              ● 即,只要某个语言写的代码,可以被编译为【符合虚拟机的规范的.class文件】,这些.class都是可以被虚拟机装载并运行的;

              ● 甚至,我们什么语言都不用,而是直接写.class文件(比如ASM,CGLib等技术;;这些技术在Spring框架中,都有大规模的应用);

              ● PS:虚拟机不仅仅有针对.class的规范,还有很多其他规范;

    (3)JVM的规范指出,JVM可以用【软件模拟并运行于各种现存计算机系统】来实现,也可以使用硬件来实现;(我们一般不考虑硬件实现)

    ……………………………………………………

    (4)JVM的规范,只是规定了该做什么;其并没有规定我们该如何是具体实现;

              ● 所以,针对这同一份虚拟机规范,不同的虚拟机厂商都有自己的实现方式;

              ● 那么,如此一来,同一个程序,放到不同厂商的虚拟机中跑的话,执行的过程与细节并不会完全一样;

    2.JVM规范,涵盖了哪些内容;(PS:虚拟机规范没必要过于深究,了解即可)

    (1)字节码指令集(相当于中央处理器CPU);

    (2)Class文件的格式;

    (3)数据类型和值;

              ● 比如这些值的类型、范围、基本实现方式的要求;

    (4)运行时数据区;

              ● 我们写的java程序,跑起来的时候,肯定要操作一些数据;

    (5)栈帧;

    (6)特殊方法;(规范规定的,虚拟机要提供的一些特殊方法的实现)

    (7)类库;(要求虚拟机要支持一些类库,以提供一些基本的功能,或者说应用程序无法提供的功能;;;比如对JNI的支持,跟硬件的交互;;;如果虚拟机不提供这些功能的话,应用程序是搞不定的;)

    (8)异常的一些处理;

    (9)虚拟机的启动、加载、链接和初始化等;

    ……

    在Oracle的官网【Java SE Specifications】就有可以去下载每个版本的虚拟机的规范;

    也可以在【Java Downloads | Oracle】上去下载JDK;

  • 相关阅读:
    vue3 的方法 ,都怎么运用,使用场景多在什么时候。
    Python每日一练(牛客新题库)——第25天:面向对象
    rtsp 流媒体播放完整的渲染方案
    Linux下,查看 可执行文件 依赖的 动态库的几个方法
    Scrapy与Selenium强强联合-共创爬虫大业
    京东面试真题:JDK1.8使用的是什么垃圾回收器,一般进行一次GC的时长以及GC的频率
    积分值和面积、对称性
    Tauri+Rust+Vue 跨平台桌面应用简明教程(1)环境创建+系统事件+自定义菜单
    排序算法之归并排序(递归和非递归版)
    Netty入门指南之NIO 网络编程
  • 原文地址:https://blog.csdn.net/csucsgoat/article/details/125628043