这也许是个萌新的问题,但我也想把它记录下来,作为Java学习的开始。
在这个大型企业软件横行的时代,Java的使用率越来越高,当然依旧不少的人不喜欢Java,因为它的设计过于笨重,但其开发效率高也是不可否认的一个优点。
言归正传,今天我们讨论下为什么Java是跨平台的语言,我们知道汇编语言的优点及其显著,就是运行速度极快,因为其就是机器指令的助记符。但缺点也是很突出的,除了读不懂以外(本人弱渣),就是汇编是体系结构依赖的语言。如有8086指令集,也有MIPS指令集等等,而像C,C++就会先翻译成这些体系结构依赖的指令,而导致其不能跨平台使用。
而Java却不一样,Java代码会先翻译成字节码,字节码是独立于当前平台在JVM上运行,所以我们无论在哪个平台上写的代码都会被翻译成相同的字节码,被JVM所运行。
但是需要注意的是JVM一般是使用C++写的,所以不同的平台上的JVM是不一样的,但他们识别的字节码却是相同的。相当于JVM成了使操作系统与Java代码兼容的媒介。
在这个大型企业软件横行的时代,Java的使用率越来越高,当然依旧不少的人不喜欢Java,因为它的设计过于笨重,但其开发效率高也是不可否认的一个优点。
言归正传,今天我们讨论下为什么Java是跨平台的语言,我们知道汇编语言的优点及其显著,就是运行速度极快,因为其就是机器指令的助记符。但缺点也是很突出的,除了读不懂以外(本人弱渣),就是汇编是体系结构依赖的语言。如有8086指令集,也有MIPS指令集等等,而像C,C++就会先翻译成这些体系结构依赖的指令,而导致其不能跨平台使用。
而Java却不一样,Java代码会先翻译成字节码,字节码是独立于当前平台在JVM上运行,所以我们无论在哪个平台上写的代码都会被翻译成相同的字节码,被JVM所运行。
但是需要注意的是JVM一般是使用C++写的,所以不同的平台上的JVM是不一样的,但他们识别的字节码却是相同的。相当于JVM成了使操作系统与Java代码兼容的媒介。