这是因为java语言是一种特殊的高级语言,它既具有解释型语言的特征,也具有编译型语言的特征,因为java程序要先经过编译即 java 文件名.java
生成 .class字节码文件,与平台无关的字节码文件,它必须使用java解释器来解释执行,java 文件名
其实java语言里负责解释执行的字节码文件的就是java虚拟机JVM,我们编译的文件都是面向JVM的,都必须通过JVM进行解释,JVM就相当于一个翻译一样,当然不同
平台(操作系统)上的jvm是不同的,就好像我们有两支 不同的笔,但要把同一个笔帽套在两支不同的笔上,只有为这两支笔提供一个转换器,即这个转换器向上的
接口相同,用于适应同一个笔帽,向下的接口不同,用于适用两个不同的笔。也就是说所有平台上的JVM向上提供给java字节码程序的接口完全相同,但向下适应不同平台
的接口则互不相同。
希望我这么回答你能理解,哈{:soso_e100:}
|