Java跨平台性
来源:互联网 发布:知乎 中国出生率 编辑:程序博客网 时间:2024/06/05 18:22
Java跨平台性
PS : 本文乃学习整理参考而来
前言:Java优秀的跨平台性,和其语言特性紧密相连;
首先得说程序设计语言的分类,分为:编译型语言、解释型语言。
程序设计语言分类描述:程序执行时的基本表示是①实际计算机上的机器语言还是②解释器解释才能得到的机器语言(②虚拟机的机器语言),可以由此将程序设计语言分为①编编译型语言和②解释型语言。
由于计算机只认识机器语言(二进制),所以高级语言(如C、C++、Java、Python、VBScript、JS等)都不能被计算机直接执行,必须经过有效翻译。如:编译和解释都是将高语言翻译成机器语言的方式,而区别是翻译的时间不同,由编译型语言写的程序在执行之前,先经过编译过程,把程序编译成机器语言文件,当运行时直接执行,因此只需进行一次翻译。而解释型语言写的程序不需要编译,直到程序运行时才进行动态翻译后执行。
以下对几个名词进行解释:
编译型语言:源程序经过编译、汇编和链接得到输出目标代码,然后由计算机执行目标代码(机器指令)。代表语言:C 、C++。
解释型语言:由可以理解源代码的解释程序(解释器)执行,解释器的任务是将源代码(中间代码)解释成可执行的机器指令。 代码执行时逐一解释成可执行的机器指令。 代表语言:Ruby、VBScript、JS,以及大多动态语言都是解释型的。
编译器:把源程序编译成机器语言,保存成二进制文件,这样运行时计算机可以直接以机器语言来运行程序,执行效率高。
解释器:只在程序执行时,才一条条解释成机器语言给计算机执行,理论速度相对慢。
总结:
不同操作系统通过编译生成的字节码文件的格式不同,所以大多数编译型语言(如C语言)在Windows上编译后的文件,在Linux上出于该原因,无法执行,跨平台性受到限制。而解释型语言通过解释器(软件解释器)将中间代码动态解释成可以执行的机器指令。这就是编译型语言不如解释型语言跨平台性好的原因所在。
而Java较为特殊,Java需要编译,但是没有直接编译成机器语言,而是编译成为.class的字节码文件。然后通过Jvm的解释器进行解释执行。在Windows系统上运行,则通Windows上的Jvm进行解释,而在Linux系统上,则通过Linux上的Jvm解释执行。所以Java跨平台,需要保证有相匹配的Jvm,如果没有,则不能进行跨平台。
网上对于Java是属于编译型还是解释型语言热议比较多,也有认为Java是一种“半编译,半解释”的语言,本人理解更倾向于后者。
PS:Go语言初识:一种编译型语言,但是不仅有C、C++般的执行效率,还有优秀的跨平台性,得益于Go语言编译器可以编译生成不同操作系统的机器码。
- Java跨平台性
- JAVA跨平台性
- java跨平台性分析
- java的跨平台性
- Java的跨平台性
- Java跨平台中的平台
- java-java的跨平台性
- java语言的跨平台性
- Java语言的特点:跨平台性
- 论Java的跨平台性
- Java跨平台性的理解
- Java跨平台性及语言特点
- java语言的跨平台性
- Java温习——跨平台性
- 如何理解java跨平台性?
- 详解Java的跨平台性
- Java平台无关性
- Java的跨平台
- redis 集合set
- sql 面试题,常用sql 语句
- JavaScript == 和 ===
- HTML文本框录入字母自动大写
- swift报错Can't find itselfxxxxwith port 6001 in ring file, not replicating
- Java跨平台性
- MT8735 andorid7.0 充电调试总结(3)——移植外部充电IC bq24298
- C++基础知识4
- 123
- PAT1054
- 【JZOJ 5490】 图染色
- hihoCoder 1632 secret poem (2017北京赛区)
- Android Studio导出Jar包
- Pydata