作者:佚名 文章来源:软件部 点击数: 更新时间:2014-11-28 14:35:51
程序员编写出来的JAVA程序是以.java为后缀的文件形式保存在硬盘上的,如果要运行这些程序,则需要先把这些文件编译成字节码格式(.class文件),再拿到JVM中,让JVM解释成计算机认识的语言,再让计算机执行。

如图中的类装载器、字节码校验器、解释器都属于JVM。
注:JVM是运行JAVA程序必不可少的平台。
不同的操作系统平台有不同的JAVA虚拟机。
JAVA虚拟机的运行原理
Sun公司在设计JAVA时,就提出了一个理念,这个理念也是JAVA这门语言能够红到现在的重要原因之一,那就是一次编译,到处执行。什么叫一次编译呢?比如说程序员编写出来的JAVA程序都是.java后缀的文件。程序编写完成后,将这些.java文件都编译成字节码格式的文件,也就是.class文件,这样程序就编译完成了。再将这些.class文件拿到各个操作系统平台上去执行,直接执行是不行的,还得先安装个虚拟机。让虚拟机将这些.class文件解释成操作系统平台认识的语言,再去执行。如果在Unix上,则安装个Unix的虚拟机,Windows上,则安装个Windows的虚拟机。这样就叫做一次编译,到处执行。

垃圾回收机制
在C/C++等语言中,有些内存一旦使用后,以后就不再会被使用了,如果不及时清理掉的话,内存会越用越少,程序运行会越来越慢。所以在C和C++中,释放内存需要程序员手动来释放。而JAVA中提供了一种垃圾回收机制,这种机制会自动的清理无用的内存。根本不需要程序员对内存的回收进行关心。但是这种机制并不会在垃圾内存刚刚产生就会回收,现在的版本还达不到这么智能,而是每隔一段时间就回收一次。有些JAVA程序用着用着就卡住不动了,然后过一会后又好了,这就是垃圾回收器在释放垃圾内存,比如eclipse用一段时间后就会卡一阵,然后又好了,这在内存小的机器上表现的尤为明显,这就是垃圾回收器在起作用了。