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