《疯狂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类。
执行后如图所示:
相关文章推荐
- 傻哲笔记1.3-《疯狂JAVA讲义》第一个Java程序以及Java程序的一些规则
- JAVA学习笔记——运行我的第一个程序(day01)
- Eclipse 4.x学习笔记(1、运行第一个Java程序)
- Java学习笔记(一)——Java程序的运行机制
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<jsp>(二十六)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<Hibernate_配置详解>(三十六)
- 【学习笔记】Thinking in java (第三版)第四章 初始化和清除(Initialization & Cleanup)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<javascript>(三十)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<Oracle_基础>(三十三)
- Jsp&Servelet 学习笔记-第一个jsp程序介绍
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<DOM解析>(三十二)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<Oracle_查询>(三十四)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<SQL_Server>(二十一)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<反射>(二十九)
- Java学习笔记——Java程序运行超时后退出或进行其他操作的实现
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<servlet_文件下载>(二十七)
- 《VC++深入详解》学习笔记[1]——第1章 Windows程序内部运行机制
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<SQL_Server_视图_函数_存储过程_触发器等>(二十三)
- java学习笔记---第一个applet程序以及一个小问题的解决
- ICE学习笔记一----运行官方的java版demo程序