Java跨平台原理

Java跨平台原理:

平台:CPU和操作系统整体称为'平台' ‘平台=CPU+OS’

CPU:计算机的核心,负责运算功能,每种CPU都有自己的指令集,AMD和Intel的指令集就不同。

指令集:CPU中控制和操作计算机的一套指令集合。

 

操作系统:计算机和用户的交互界面。不同操作系统支持不同的CPU的指令集。

 

因为现在主流的操作系统都支持主流的CPU,所以有时也直接把操作系统(OS)称为平台。

 

正题:C源文件的跨平台

 

Java跨平台原理

跨平台概念非跨平台特定编译器编译的文件只能在特定的操作系统上运行。所谓跨平台就是编译后的文件可以在不同操作系统上运行。

 

 

Java跨平台:

Java跨平台原理

 

区别C语言:C语言是提供不同的编译器来完成不同平台的编译,但是Java把源码编译为中间码,提供给不同操作系统不同的解释器,以此解释执行中间码。

 

因此跨平台和非跨平台的区别:一个是多解释器(多JVM),一个是多编译器。

 

语言根据不同执行方式分类:

1.编译执行 (速度快,无法跨平台,如:C)

2.解释执行(特定的解释器,把代码一行行解释为机器码,类似同声翻译。可跨平台,速度慢,暴露源程序,如:HTML,JavaScript。 )

注意:此处虚拟机指的是程序虚拟机,类似JVM,而非VMware

3.“中间码+虚拟机”(也可以叫”中间码+解释器”)。包括了编译执行和解释执行的优点,速度快,安全,可跨平台。

 

Java的执行:.class文件在不同的JVM下会得到不同的机器码(Window和Linux机器码不同),但是结果是一致的。