Java学习之Java的运行环境

原创 2004年06月23日 16:54:00

Java 时下已经非常流行。全球每天有超过百万的程序员在用Java进行着程序的开发。用Java编写的程序也因为其硬件环境无关性而越来越受到人们的青睐。如果您希望成为Java世界的一员,那就看看这个系列的文章也许对您会有帮助。


   无论哪种语言都需要有它特定的运行环境也就是平台,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). 每一个版本都提供了丰富的开发工具箱以适应不同的开发需要。

让我们来具体看看Java平台的核心JVM的具体结构。
为了让编译产生的字节码可以更好的解释与执行,一共把JVM分成了主要的6块:JVM解释器,指令系统,寄存器,栈,存储区,碎片回收区。

JVM解释器就是这个虚拟机的处理字段码的CPU。

JVM指令系统同硬件计算机很相似。一条指令分成操作码和操作数两部分组成。操作码为8位二进制数,操作数可以根据需要而定。操作码是为了说明一条指令的功能,所以JVM可以有多达256种不同的操作指令。

JVM有自己的虚拟寄存器,这样就可以快速的和JVM的解释器进行数据交换。为了功能的需要,JVM设置了常用的4个32位寄存器:pc(程序计数器),optop(操作数栈顶指针),frame(当前执行环境指针),vars(指向当前执行环境中第一个局部变量的指针)。

JVM栈是指令执行的时候数据和信息存储的场所和控制中心,它提供给JVM解释器运算所需要的信息。

JVM存储区就是为了把编译过后的字节码等信息存储起来。

JVM碎片回收是指将那些使用过后的Java类的具体的实例从内存进行回收,这就使得开发人员免去了自己编程控制内存的麻烦和危险。随着JVM的不断升级其碎片回收的技术和算法也更加合理。比较经典的算法有引用计数、复制、标记-清除和标记-整理。在JVM1.4.1版以后产生了一种叫分代收集技术,简单的来说就是利用对象在程序中生存的时间划分成代,以这个为标准进行碎片回收。关于碎片回收将在以后的文章中专门讲解。

安装JAVA运行环境步骤

安装JAVA运行环境步骤: 第一步:    下载安装JDK即JAVA运行环境; 1>                        到sun官方网站下载JDK;网址:http://java.sun....
  • yihu0817
  • yihu0817
  • 2014年12月16日 20:31
  • 800

凭啥java的运行环境称为虚拟机?

看到Stackoverflow上有个问题在讨论Java和Python的对比,其中就有人问答为啥Java的运行环境被称之为JVM,而Python的只能叫做Interpreter。 这个问题估计想过...
  • doitmyrui
  • doitmyrui
  • 2015年04月14日 22:13
  • 372

Windows7下的Java运行环境搭建过程图解

第一步:下载JDK 地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,(由于Sun于2009年被orac...
  • smxjant
  • smxjant
  • 2017年04月18日 11:14
  • 832

Java 学习之了解 Java 的运行环境

Java 时下已经非常流行。全球每天有超过百万的程序员在用Java进行着程序的开发。用Java编写的程序也因为其硬件环境无关性而越来越受到人们的青睐。如果您希望成为Java世界的一员,那就看看这个系列...
  • wangyongligood
  • wangyongligood
  • 2007年10月21日 21:20
  • 232

阿里云部署java web运行环境

在平常使用阿里云服务器时,我们是在命令行操作远程服务器,然后用ftp将文件上传到我们的远程阿里的tomcat目录下。     一般我是用Xmanage来连接阿里云服务器(里面有各种协议的连接工具):...
  • u010214269
  • u010214269
  • 2015年11月26日 19:25
  • 1098

Java 运行环境的安装、配置与运行

(一)SDK 的下载与安装1. 机器要求 Java 对机器运行要求不高。下面给出的是基于Windows 平台的机器要求。硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。软件要求:...
  • fightingcoder419
  • fightingcoder419
  • 2016年07月30日 10:46
  • 1556

myEclipse设置java编译环境和运行环境

MyEclipse和JAVA的各个版本可能有一点不同,但是万变不离其宗,在这里小弟用的是MyEclipse7.0和JDK1.7.0,现在就给朋友们讲解一下MyEclipse配置JDK的方法。  ...
  • azhegps
  • azhegps
  • 2016年02月26日 22:17
  • 1718

Linux下部署Java Web程序运行环境

1、连接Linux服务器 使用SSH客户端putty连接Linux服务器,还可以使用SecureCRT、Xshell等工具。putty下载链接:http://the.earth.li/~sgtatha...
  • hugh282003
  • hugh282003
  • 2014年03月14日 17:14
  • 1648

Linux下搭建java运行环境基础(一)

现在在Centos7下搭建一下java开发环境,由于自带的java版本为1.7.0且升级到1.8.0后且不带javac等编译工具,所以我打算卸掉重新完整的装一次 [root@mycentos shel...
  • u010447234
  • u010447234
  • 2017年03月24日 21:57
  • 553

win7 64位配置java运行环境

在百度软件中心下载jdk比较方便
  • c18216575
  • c18216575
  • 2014年11月16日 15:58
  • 5333
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java学习之Java的运行环境
举报原因:
原因补充:

(最多只允许输入30个字)