Java是如何工作的

1. 编程语言是如何工作的

我们可以把编程语言按照与底层实现的接近程度来划分层次,更加高层次的编程语言会让我们写起来更像自然语言一些,比如Java, C++。而低层次的语言,更贴近机器语言,即在描述底层是如何实现的。

对于大部分编程语言来说,工作的整个过程是从编译 - 链接 - 执行。就是从源代码开始,编译器会运行源代码,将其转化为贴近机器语言的状态,我们将其称为Object 文件。一系列的Object文件可以被链接起来,并创建一个可执行文件。操作系统可以加载这个可执行文件到内存中,并运行程序。

还有一部分语言是解释性的,比如Lisp, Schema。他会针对每一个高层次的语句来做低层次的翻译,然后顺序执行他们。这个过程相当于我遇到一个语句,翻译成计算机能看懂的语言以后,再看下一句...

2. Java是如何工作的

Java是个平台独立的语言,那他是怎么做到的呢?

首先我们要理解一下什么叫做平台独立?

对于很多编程语言来说,编译器会生成可以在特定计算机上执行的代码。比如你在windows机器上编译一段c++代码,那么生成的可执行文件可以在任何其他的windows电脑上运行,但无法在Mac或者Linux机器上运行。

对于早期的语言来说,设计者需要针对每一个平台专门设计一个编译器。而作为一个程序员,如果你想自己的代码在多个平台上都可以工作,你也需要针对性的做很多修改。

Java重新组织了编译-链接-执行这个循环,它将和平台相关的代码给抽象出来,和其他代码分开。这样子,编译的时候不会生成一个Object文件,反之,会生成字节码文件,这个字节码文件是平台独立的,即它可以在任何平台运行。那么刚才说的和平台相关的代码放到哪里了呢?为了执行字节码,我们需要唤醒java解释器。每个平台都会有自己的解释器,来解决和平台相关的问题。

对于其他语言来说,执行的过程是 编译,链接然后执行。对于Java来说,更应该说是编译然后链接,执行。

Reference

CMU Class Notes

你可能感兴趣的:(Java是如何工作的)