zoukankan      html  css  js  c++  java
  • 《深入理解Java虚拟机》笔记5

    Java虚拟机可以执行的语言并不是只有Java语言,比如jython也可以

    运行在Java虚拟机上。不明白字节码之前觉得挺疑惑,为什么和Java

    完全不同语法的程序语言也可以运行在虚拟机上呢?

    不得不承认创建Java语言的人具有极大的想象力和前瞻性,

    就像所有的程序语言真正运行时候都得变成机器指令一样,

    所有在jvm上执行的语言都得变成jvm认可的字节码,而Java

    只是其中一种实现。Java语言只是字节码指令组合的一个子集。

        class文件是以8字节为单位的二进制流,和xml等文件不同,

    class文件上存储的没有冗余数据。这样的文件可读性虽然差,

    但是节省空间,符合虚拟机执行的需求。当然,如果我们想修改

    字节码来改变class文件也是比较复杂的,因为位置,顺序等基本被

    严格限制死了。

    class文件的前四个字节值为0xCAFEBABE,这个确定文件格式

    的魔数,因为文件的后缀名是可以随意更改的。紧接着魔数的

    四个字节存储的是class文件的版本号。根据向下兼容的原则,

    高版本的jre可以执行低版本的class文件,反之则不行。当然判定

    的依据就是这个版本号。

  • 相关阅读:
    人月神话阅读笔记(三)
    MongoDB设置用户名以及密码
    pdf.js使用总结#如何在网页读取并显示PDF格式文档
    Python中eval函数的作用
    寒假学习笔记(13)
    寒假学习笔记(12)
    寒假学习笔记(11)
    寒假学习笔记(10)
    寒假学习笔记(9)
    寒假学习笔记(8)
  • 原文地址:https://www.cnblogs.com/zwm512327/p/3533573.html
Copyright © 2011-2022 走看看