您的位置:首页 > 编程语言 > Java开发

《疯狂Java讲义(第三版)》学习笔记之 —— 1.3 Java运行机制 && 1.5 第一个Java程序

2017-01-12 13:57 489 查看

1.3 Java程序运行机制

经典解释如图所示:



Java程序的执行过程必须经过先编译、后解释两个步骤。
具体点,Java编译器将Java源文件编译成(与平台无关的)字节码文件,然后Java解释器(即Java虚拟机——JVM)将Java字节码文件解释成指定平台的机器码。

其中,Java编译器与平台无关,只有一种。
字节码文件与平台无关。
Java解释器与平台相关,不同平台上的JVM都是不同的,须为不同平台实现相应的虚拟机。
机器码自然与平台相关了。

所有平台上的JVM向编译器提供相同的接口,而编译器只需面向虚拟机,生成虚拟机能理解的字节码即可。

书中介绍了一种形象的比喻,非常值得一提:



1.5 第一个Java程序

为什么把这两节放在一起做笔记呢?因为这两节都是对Java基础层次的理解,前后连贯,1.5是对1.3的实践证明。

这一节中重点介绍用最基础的命令“javac”、“java”编译运行Java程序。

javac(java compile的缩写)可以将Java源文件中的类分别编译成各自的字节码文件。java负责运行指定的类。

举例说明:
1. Java源文件

Java源文件名为Test.java,源代码如下:
class Test1
{
public static void main(String args[])
{
System.out.println("Javac and java test.");
}
}

class Test2
{

}
若源文件中含有public类,则源文件名必须与public类的类名相同。否则,源文件名可以随意(如上)。
而Java解释器(JVM)规定,若需要某个类被解释器解释执行,则该类必须包含main方法。而main方法头部的写法几乎是固定的。

2.(与平台无关的)字节码文件

Java编译器将Java源文件中的类分别编译成对应的字节码文件,即Java源文件中的一个类对应一个字节码文件,且字节码文件名默认与类名一致。
执行“javac Test.java”将上述Java源文件编译成功后,生成两个字节码文件:Test1.class、Test2.class,如下所示:



3.(与平台相关的)机器码

Java解释器(JVM)执行类。
执行"java Test1",将执行类Test1的代码体。注意,java后跟的是类名而不是.class文件名,然而仍需要字节码文件名与类名一致,因为java命令须按照后面的类名找到相应的字节码文件,进而找到字节码文件中的Java类。
执行后如图所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐