java语言的跨平台性
Java语言跨平台原理平台:指的是操作系统(Windows,Linux,Mac)跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行。不垮平台的实例:我们电脑的qq、微信发送给手机是不能安装使用过的。电脑版的是windows版本的,手机的是安卓的。原理:实现跨平台需要依赖Java的虚拟机JVM(Java Virtual Machine),跨平台的是java程序(源代码),而jvm不是垮平
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了。
更多推荐
所有评论(0)