前言
前段时间在看算法这块的东西,看的我是头昏脑胀。所以这几天又捡起了 《深入理解Java虚拟机》 这本书,这次主要看的是书中的 第三部分,我一直崇尚知识是在不断的总结和不断地学习相互交叉,这样才能学以致用,用而有据。
概念
字节码
字节码指的是 Java 中的 .java 文件经过编译( javac )后生成的固定格式文件 .class 文件以供 JVM 使用。
之所以被称为字节码文件是因为字节码文件是由十六进制值组成,JVM 以两个十六进制值为一组,即一个字节进行读取。同时 JVM 也针对不同操作系统和平台进行优化,这也就是 Java 号称 一次编译,到处运行 的根本原因。
由此又可以引出一个问题,由于 JVM 规范的存在,那么只要我们最终可以生成符合 JVM 规范的字节码文件那就可以在 JVM 上运行了,这也就产生了其他运行在 JVM 上的语言(如 Scale、Kotlin、Groovy ),可以通过其他语言可以扩展 Java 所没有的特性和语法糖。