Java程序的运行机制
Java运行的两种类型
-
编译型:
- 编写是指在Java开发环境中进行程序代码的编辑,最终生成后缀名为“.java”的Java源文件
- 在程序运行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序时,就不用再进行翻译了。
-
解释型:
-
编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,该文件可以被Java虚拟机(JVM)的解释器正常读取。
-
是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。
二者之间最大的区别就在于是否存下目标机器码:编译会把输入的源程序以某种单位(例如基本块/函数/方法/trace等)翻译生成目标机器码,并存下来(无论是在磁盘上或是内存中)后续执行可以复用;解释则是把源程序中的指令逐条解释执行,边解释边执行,不存下目标代码,后续执行没有可以复用的信息。
-
-
程序运行机制:
JAVA两种核心机制
-
JAVA虚拟机(Java Virtual Machine)
Java虚拟机可以理解成一个字节码为机器指令的CPU对于不同的运行平台,有不同的虚拟机
Java虚拟机屏蔽了底层平台的差别,实现了“一次编译,到处运行”
-
垃圾回收机制(Garbage collection)
不再使用的内存空间应回收–—垃圾收集在C/C++等语言,有程序员负责回收无用内存
Java语言消除了程序员回收无用内存空间的责任,它提供一种系统级线程跟踪存储空间的分配情况,并在JVM空闲的时候,检查并释放那些可以被释放的内存空间:垃圾收集在Java程序运行中自动运行,程序员无法精确控制
Java Application初步
- 局部变量:方法或者语句块内部定义的变量 (local variable)
- 成员变量:方法外部、类内部定义的变量,也叫做全局变量 (glbal caliable)
- 一个源文件中最多只能有一个public类,其他类的个数不限。程序的入口是:
public static void main(String[] args){…}
Java 语言严格区分大小写和格式。