Java是一门面向对象的BS开发语言,那么它的程序是如何工作的,即工作原理如下:
/**
*第一个java程序
*貌似还有点风趣
*/
public class HelloWorld{
public static void main(String [] args){
System.out.println("HelloWorld.");//代码搬运工上线
}
}
以上是一个简单的java程序,它的运行步骤如下图所示,先输入javac指令使java编译器对java类型的源文件进行编译并检查是否有错误,检验无错误后将生成一个class类型的文件,它会被存储在类装载器中,通过解释器翻译为0 1代码后才被传入操作系统平台。
*class类型文件的的内容既不是计算机识别的0 1代码,也不是程序员识别的编程语言,那他的内容是什么呢?原来,在操作系统中,存在一个java虚拟机名为jvm,class文件中的代码就是jvm才可以识别的语言,这也是java语言的一个特性就是:一次编译,处处执行。下图是这一特性实现的流程
!
由图中可以了解到,在各种操作系统中都有可以识别class类型文件的jvm,这也是为什么java的程序可移植性强。而c语言则是直接将源代码编译操作系统识别的语言,所以c程序在不同操作系统之间移植时必须将源代码全部重新编译。
java的这种编译方式在移植性强的同时编译速度上要逊色于c,由上图对比可以清晰的看出哪个语言编译速度更快