跨平台语言的底层原理浅析

介绍

在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支持新的操作系统,那么必须要有支持新的操作系统的虚拟机。这就是为什么java号称跨平台而不用改代码,一套代码通吃所有平台,是java虚拟机帮我们做了平台适配的工作,别人做了底层工作罢了,所以大伙用起来爽爽的。

编译

具体java编译过程详细请参考下面这个仁兄的博客

Java代码编译过程简述Hopefully Sky的博客-CSDN博客java编译过程

 

运行

运行简要模型,具体详细的运行模型需要拆解JVM的原理,后续文章再续。

 

 

 

 

 

 

 

 

 

 

 

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页