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.兼容性:也可以将别的语言解析成字节码和语言无关。