一、Java程序的运行机制
Java语言是一种特殊的高级语言、它既具有解释性语言的特征、也具有编译型语言的特征,因为Java程序要经过先编译后解释两个步骤。用Java语言编写的程序先经过编译步骤,但是这个编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节码(也就是*.class文件)。当然,这种字节码不是可执行性的,必须使用Java解释器来解释执行。
Java语言里负责解释执行字节码文件的是Java虚拟机,即JVM(Java Virtual Machine)。
二、开发Java的准备
在开发Java程序之前,必须先完成一些准备工作,也就是在计算机上安装并且配置Java开发环境,开发Java程序需要安装和配置JDK(Java SE Development Kit 即Java标准版开发包),JDK提供了编译、运行Java程序所需要的各种工具和资源,包括Java编译器、Java运行时环境(JRE)、以及常用的Java类库等。
配置PATH环境变量:虽然我已近在计算机中安装了JDK,而JDK的安装路径下也包含了编译命令java和解释执行命令javac两个命令,但是计算机不知道去哪里找这两个命令,所以我们需要配置Path环境变量(变量值就是一系列路径),Windows操作系统根据Path环境变量来查找命令。
在JDK1.4以前的JDK版本中,需要配置CLASSPATH环境变量,告诉JRE需要在哪个路径下搜索Java类以及lib路径下的dt.jar和tool.jar文件里的java类,但是在JDK1.5版本以后,默认在当前路径下搜索类。并且使用Java的便以死和运行工具时,系统可以自动加载dt.jar和tools.jar文件中的Java类,因此不再需要设置CLASSPATH环境变量。
三、垃圾回收机制
Java程序内存的分配和回收都是由JRE在后台自动进行的。JRE会自动回收那些不再使用的内存,这种机制被称为垃圾回收(Garbage Collection 也被称为GC),通常JRE会提供一条超级线程来进行检测和和控制,一般都是在CPU空闲或者内存不足时自动进行垃圾回收,而程序员无法精确控制垃圾回收的时间和顺序等。