Java169面试题----1:Java跨平台原理

    科技2026-03-17  8

    计算机到底能够执行什么东西?

    我们平时使用的语言例如c/c++/java都是高级语言,计算机并不能够直接执行他们,换句话说计算机不能理解这些高级语言的意思,就比如一个只会中文的中国人听不懂英语一样。为什么能够让计算机能够执行这些高级语言编写而成的程序,那么就需要把它翻译成计算机能够理解的机器码。计算机能够执行机器码。问题是不同计算机的机器码不同这就给跨平台的执行带来很大的困难,再以前要在不同的计算机上执行就要每次都编译成为不同的机器码。这也是c/C++所使用的方法:C/C++语言都直接编译成针对特定平台机器码。如果要跨平台,需要使用相应的编译器重新编译。

    Java

    Java再发布的时候就有一个很响亮的口号:一次编译,到处运行Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运行。解释是通过Java虚拟机来执行的。Java语言的执行要经过编译和解释两个阶段。字节码文件不面向任何具体平台,只面向虚拟机。Java虚拟机是可运行Java字节码文件的虚拟计算机。不同平台的虚拟机是不同的,但它们都提供了相同的接口。Java语言具有一次编译,到处运行的特点。就是说编译后的.class可以跨平台运行,前提是该平台具有相应的Java虚 拟机。但是性能比C/C++要低。但是Java的跨平台原理决定了其性能没有C/C++高总的来说,一个Java源程序只需要一次编译成字节码文件即可,只要是安装了java虚拟机的计算机就可以执行这个字节码并把字节码解释成其对于计算机的机器码。
    Processed: 0.014, SQL: 10