java语言的跨平台性

Java语言跨平台原理

平台:指的是操作系统(Windows,Linux,Mac)

跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行。
不垮平台的实例:我们电脑的qq、微信发送给手机是不能安装使用过的。电脑版的是windows版本的,手机的是安卓的。

原理:实现跨平台需要依赖Java的虚拟机JVM(Java Virtual Machine),跨平台的是java程序,而jvm不是垮平台的。
在这里插入图片描述
这就如我们去日本旅游,我们说的汉语,而日本人听不懂,要想实现汉语的跨国性(跨平台)我们需要一个日本的中日翻译人(jvm角色),同样,去美国,韩国,都需要不同的翻译人员(不同平台的jvm)才能实现我们汉语的跨平台使用。

深入解释一下跨平台:

所谓的跨平台。首先我得理解一下什么是不跨平台。
大家都知道C语音这个程序语言吧。对于C语言来说,它的整个过程是这样的C——编译器——平台。 写好的C语言的源文件会通过编译器生成与相应平台对应的机器语言,然后机器语言再在平台中操作。这其中不同平台对应的编译器生成的机器语言也是不同的。所以不同的平台所需要的C语言的编译器也是不同的,故而C语言也就不是跨平台的语言。

这时候再来说一下JAVA的整个过程:Java——编译器——jvm——平台。具体的步骤是这样的:写好的Java源文件通过javac命令编译生成class文件(中间文件),然后jvm对class文件进行执行生成机器语言然后机器语言在平台中操作。 而这个整个过程与上面C语言的过程的区别就是有一个jvm虚拟机和中间文件(class文件)的存在。这个class文件是可以运用在各类jvm中,而再由jvm生成机器语言(当然jvm是不具有跨平台的,不同的平台对应不同版本的jvm)。因为有jvm这个东西的存在,使得你用java语言可以跨越平台间来使用,所以说Java语言是跨平台性。

PS:有人会说上面的c语言也是跨平台性的啊,因为我只要使用不同的平台编译器就可以让我写的c语言的源文件在不同的平台间使用啦。 这里要说一下,所谓语言的跨平台性并不是说是源文件的跨平台性(如果要这么定义那么任何的语言都是跨平台性的),而是指源文件编译生成的文件的跨平台性,比如你用VC编译的文件exe可以用在Linux系统中吗?那是不可能的!但是你用Java语言编译生成的class文件就可以用在任何的jvm中(也就是任何的平台中)。

JVM、JRE、JDK

JVM:

Java虚拟机(Java Virtual Machine),Java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台。

JRE:

Java运行环境(Java Runtime Environment),包含Java虚拟机和Java程序运行时所需的 核心类库 等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JDK:

Java 开发工具包(Java Development Kit),是提供给Java开发人员使用的,其中包含了编译器等开发工具也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值