编译器(javac)将Java源⽂件(.java)⽂件编译成为字节码⽂件(.class),可以做到⼀次编译到处运行,windows上编译好的class⽂件,可以直接在linux上运行,通过这种方式做到跨平台,不过Java的跨
编译器(javac)将Java源⽂件(.java)⽂件编译成为字节码⽂件(.class),可以做到⼀次编译到处运行,windows上编译好的class⽂件,可以直接在linux上运行,通过这种方式做到跨平台,不过Java的跨平台有⼀个前提条件,就是不同的操作系统上安装的JDK或JRE是不⼀样的,虽然字节码是通用的,但是需要把字节码解释成各个操作系统的机器码是需要不同的解释器的,所以针对各个操作系统需要有各自的JDK或JRE。
采用字节码的好处,⼀方面实现了跨平台,另外⼀⽅面也提高了代码执行的性能,编译器在编译源代码时可以做⼀些编译期的优化,比如锁消除、标量替换、方法内联等。