Java的平台无关性

转载请注明原文地址:http://www.javashuo.com/article/p-wjqhkuwk-es.htmlhtml

 

一:程序须要转化为机器指令执行

    不管哪一种编程语言编写的程序都须要通过 操做系统 和 CPU 来完成程序的运行,而机器只能识别0、1组成的机器指令,所以,程序在机器上运行前须要先编译成为机器能识别的机器指令。java

    不一样的平台能识别的机器指令不一样,所以某种语言编译出来的机器指令在A平台能别识别和执行,在B平台就有可能会出错。编程

    所以,一旦更换了平台,就可能须要修改源程序,并针对新的平台从新编译源程序,这就是咱们所说的“平台相关性”。安全

 

二:Java语言的平台无关性

    Java在平台与程序之间,提供了一个 向下兼容(对平台兼容) 同时 又能够向上兼容(程序能够运行)的运行环境——JRE【Java运行时】。jvm

    JRE由Java虚拟机[JVM],类库和一些核心文件组成,任何平台只要安装了JRE,就能够运行Java程序编程语言

    

三:“一次编译,处处运行”

    Java语言提供的编译器  针对Java虚拟机  把Java源程序编译成“字节码”,而后Java虚拟机负责将字节码翻译成虚拟机所在平台的机器码,并让当前平台运行该机器码。函数式编程

    所以,在一个计算机上编译获得的字节码文件(就是.class文件),能够复制到任何一个安装了Java运行环境的计算机上直接运行。函数

    这个过程就是“源程序——>编译——>字节码——>JVM——>对应平台的机器码——>执行”。操作系统

 

四:JVM支持10种语言

  Java:主人公。scala

 

  kotlin:Kotlin比Java更加简洁和安全, 能够将Kotlin视为是一种“更加简单但高效的Java”。Kotlin的编译速度一般比Java代码快,目前大多用于Android开发。

 

  Scala:Scala的全称叫scalable,可伸缩的意思。它是个纯正的面向对象语言,而且具有函数式编程特性,因为构建在jvm之上的,他能够和Java进行无缝对接,也就是说scala可使用Java的类库,java有可使用scala程序。

                 目前scala主要用于为大规模数据处理而设计的快速通用的计算引擎——Spark。

 

  Clojure

  Groovy

  Jython

  JRuby

  Ceylon

  Eta

  Haxe

相关文章
相关标签/搜索