简介
Byte Code也叫做字节码,是连接java源代码和JVM的桥梁,源代码编译成为字节码,而字节码又被加载进JVM中运行。字节码怎么生成,怎么查看字节码,隐藏在Byte Code背后的秘密是什么呢?快跟小师妹一起来看看吧。
Byte Code的作用
小师妹:F师兄,为什么Java需要字节码呢?直接编译成为机器码不是更快吗?
小师妹,Java的设计初衷是一次编写,到处运行。为了兼容各个平台的运行环境,java特别为各种平台设计了JVM。
我们可以把JVM看做是一种抽象,对外提供了统一的接口。这样我们只需要编写符合JVM规范的代码,即可在JVM中运行。
回想下之前我们提到过的java的执行过程:
编写java代码文件比如Example.java
使用java编译器javac将源文件编译成为Example.class文件
JVM加载生成的字节码文件,将其转换成为机器可以识别的native machine code执行
小师妹:F师兄,我有一个大胆的想法,JVM的作用是将字节码解释或者编译成为机器码。然后在相应的运行环境中执行。那么有没有可能,不需要JVM,不需要机器码,而是直接在对应的平台上执行字节码呢?
爱因斯坦说过没有想像力的灵魂,就像没有望远镜的