Java底层知识001-平台无关性

2022/06/27 Interview

Java底层知识001-平台无关性

目录

Compile Once, Run Anywhere如何实现?

1.编译

1.将写好的.java文件,执行javac编译,生成.class文件也就是字节码(跨平台基础)。
2.不同平台的jvm将字节码转换成特点的执行指令:
  
               -------  jvm for linux
  .class文件  ---         jvm for  win
               -------  jvm for ios             

2.反编译

如果直接打开.class文件,发现它是指定格式的一串串二进制,一般我们是很难看懂的,

所以可以借助javap 或者 其它工具,将.class文件反编译成容易阅读的格式。

为什么JVM不直接将源码解析成机器码去执行?

1.准备工作:先编译成.class文件(字节码),每次执行程序就不用每次重新对语法等各种检查。
  只需要,编译的时候检查一次。
2.兼容性:也可以将别的语言解析成字节码和语言无关。

Search

    Table of Contents