无论哪种语言都需要有它特定的运行环境也就是平台,java 同样不例外。您也许会问,java程序不是有硬件环境无关性吗?好吧,我希望这篇文章可以回答好这个问题。
几乎所有的语言都是需要通过编译或者解释才可以被您的电脑执行。可是java有一点不同,它同时需要这两个过程。其实,也正是因为这个原因才使java这种语言具有了平台无关性。当您写好了一个java程序的时候(当然这个时候您并不用真的会写java程序)。首先,通过一段翻译程序将它编译成一种叫做字节码的中间代码。然后再由java平台的解释器将它翻译成为机器语言来执行----平台的核心叫做JVM(java虚拟机)。java的编译过程也与其它的语言不同。例如像c++这样的语言,在编译的时候,是与机器的硬件平台信息密不可分的。编译程序通过查表将所有指令的操作数和操作码等等转换成内存的偏移量即程序运行时的内存分配方式,以保证程序运行。而java却是将指令转换成为一种*.class的文件,这种文件不包含硬件的信息。需要执行的时候只要经过装了JVM的机器解释,创立内存布局后再通过查表来确定一条指令所在的地址。这样就有效的保证了java的可移植性和安全性。那么java平台为什么会有这么好的特性呢?
通常一个程序运行的平台是一个硬件或者软件运行的环境。目前比较流行的是Windows 2000, Linux, Solaris, 和MacOS。java的平台不太一样,它由两个部分组成:一个是java Virtual Machine即java虚拟机,另一部分是java Application Programming Interface (java API) 即java应用程序设计接口,这两部份软件就构成了java运行的基本的环境。java API 是一个大的已经做好的软件集合,这个集合里有许多开发时所需要的控件,用来辅助开发。java API和JVM整合在一起处于机器硬件之上。也就是说,java平台把一个java应用程序从硬件系统分离开从而很好的保证了程序的独立性。为了更好的适应开发的需要,java的设计者们为我们提供了三种java平台:java 2 Micro Edition (J2ME ), java 2 Standard Edition (J2SE)和 java 2 Enterprise Edition (J2EE). 每一个版本都提供了丰富的开发工具箱以适应不同的开发需要。
为了让编译产生的字节码可以更好的解释与执行,一共把JVM分成了主要的6块:JVM解释器,指令系统,寄存器,栈,存储区,碎片回收区。
最后,通过本文我希望能使大家对java的运行平台有一个比较清楚的了解。在接下来的文章《 Java学习之踏上旅途的第一步》里我将告诉大家如何安装一个java平台以及如何开始我们的第一个小程序。
责任编辑:李宁
欢迎评论或投稿