介绍
在IT从业中,我们时不时会听到xxx语言支持跨平台,一套代码在windows, linux, unix, mac上运行,懂一种语言就可以玩转所有平台,开发效率极高。本文主要介绍java的跨平台特性,其他语言的跨平台特性类似。
原理
当前所有的流行的操作系统windows,linux,unix都是基于c/c++开发而来, 从某种意义上讲c/c++是天生跨平台语言,移植性强(不同操作系统底层api不尽相同, 涉及到底层api调用需要操作系统适配)。而其他语言如java, 它的底层实现也是通过c++实现,java通过jni接口来调用,简单来讲涉及到系统调用等底层操作,java自身搞不定,需要c++来辅助。举一个现实中的例子: java是树枝,树叶;树根则是c/c++;大地则是操作系统。
跨平台语言模型
java跨平台模型
从上图可以看出,不同系统的虚拟机是java语言实现跨平台的基础,如果java支持新的操作系统,那么必须要有支持新的操作系统的虚拟机。这