JVM跨平台原理

Java有一个其他语言都没有特点,那就是跨平台。

跨平台是什么意思呢?

我们首先来看看平台是指什么。

平台就是指我们计算机的操作系统,例如:Windows、Linux、Mac等操作系统。

跨平台的意思就是Java程序,在一次编译后,在这些平台上都可以运行。有其他编程语言基础的朋友应该知道,其他语言没有这个特性,例如c语言在Windows上编译的文件,放到Linux系统上运行,可能就有不兼容问题。

那么问题来了,Java语言的跨平台是怎么做到的呢?

我们先来看这样一个场景:

      老王需要出差去美国,与美国人谈论一个项目需求,但老王不会讲英语,那个美国人也不懂我们中文,那怎么办呢?很明显,老王需要找一个翻译(这里取个名字,就叫A吧),这个翻译需要既会普通话,又会英语,做他们沟通的一个桥梁。与美国人谈完之后,老王还需要与日本人继续谈另外一个项目,很明显,老王还需要一个懂普通话和日语的人(这里取个名字,就叫B吧)。

假设我们的翻译A只懂普通话和英语,不懂日语,那么我们的翻译B就得另外找一个人了,也就是翻译A和翻译B不是同一个人。

朋友可能不耐烦了:不是要跟我讲Java跨平台的原理吗,怎么跟我扯这些呢?下面,重点就来了

我们知道,Java程序是运行在JVM上面的,我们Windows上编写的Java程序,在我们window上的JVM运行,当我们把程序放到Linux系统上面的时候,就在我们的Linux系统上运行,有过发布部署项目经验的朋友,就会很清楚,我们window和Linux上的JVM是不一样的。没有经验的朋友也可以在oracle官网上看到jdk有以下平台版本信息:

也就是不同的操作系统,oracle公司有专门的JVM支持。

到这里,朋友们大概明白了吧

Java程序就相当于是老王,操作系统相当于美国人或日本人,翻译就相当于JVM,通过不同JVM实现Java程序的跨平台。

window系统有专门的JVM,Linux也有专门的JVM,所以Java编译后的程序,能在这些操作系统上运行,得益于这些JVM的“翻译”工作。

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值