一 、高级语言的运行机制
计算机高级语言按程序的执行方式可以分为编译型和解释型两种.
编译型语言是指使用专门的编译器,针对特定平台(操作系统) 将某种高级语言源代码一次性 "翻译" 成可被该平台硬件执行的机器码,
并包装成该平台所能识别的可执行性程序的格式,这个转换过程称为编译。
解释型语言是指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。
解释型语言的优势 : 跨平台较易,解释型语言可以方便地实现源程序级的移植,但这是以牺牲程序执行效率为代价的。
解释型语言的劣势 : 每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释器独立运行。
1.1、JAVA程序的运行机制和JVM
JAVA语言既不是纯粹的编译型语言,也不是纯粹的解释型语言。
JVM的作用:JVM是JAVA程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的JAVA字节码就可以在该平台上运行。显然,相同的字节码
程序需要在不同的平台上运行,这几乎是“不可能的”,只有通过中间的转换器才可以实现,JVM就是这个转换器。
JVM的组成部分:指令集,寄存器,类文件的格式,栈,垃圾回收堆,存储区。
JDK(Java SE Development Kit)即Java标准版开发包,
它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、JRE(Java运行时环境),以及常用的Java类库等。
如果使用JDK1.5以上的版本,完全可以不用设置CLASSPATH环境变量。
1.2、HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld.");
}
}
javac命令:javac -d destdir srcFile
-d destdir是javac命令的选项,用以指定编译生成的字节码文件的存放路径,destdir只需是本地磁盘上的一个有效路径即可,
而srcFile是Java源文件所在的位置,这个位置即可以是绝对路径,也可以是相对路径。
例如:javac -d . HelloWorld.java
(.) 表示当前路径 , 此处的意思是把编译好的HelloWorld.class文件存放在HelloWorld.java同一个路径。
1.3、 Java源文件的命名规则及易错之处
一个Java源文件只定义一个类,不同的类使用不同的源文件定义。
让Java源文件的主文件名与该源文件中定义的public类同名。
Java语言是严格区分大小写的,安装Java相关程序、工具时,不要安装在带有空格的路径下。
1.4、 Java的垃圾回收机制
垃圾回收机制(Garbage Collection ,GC):Java语言不需要程序员直接控制内存回收, Java程序的内存分配和回收都是由JRE在后台自动进行的。JRE会负责回收那些不再使用的内存。
垃圾回收能自动释放内存空间,减轻编程的负担。所以Java虚拟机具有如下两个显著的优点:
1. 垃圾回收机制可以很好地提高编程效率。在没有垃圾回收机制时,可能需要花费很多时间来解决一个难懂的存储器问题。在用Java语言编程时,依靠垃圾回收机制可大大缩短时间。
2. 垃圾回收机制保护程序的完整性,垃圾回收是Java语言安全性策略的一个重要部分。
垃圾回收的一个潜在的缺点就是它的开销影响程序性能。