Java程序设计:原理与范例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 Java平台及版本

平台(Platform)通常指运行程序所需的软硬件环境,它是操作系统与底层硬件的组合。Java平台仅指运行在硬件平台之上的软件环境,它是运行Java程序所必需的环境,因此也称为Java运行时环境(Java Runtime Environment, JRE)。

1.3.1 平台组成

Java平台具体由JVM(Java Virtual Machine, Java虚拟机)和API(Application Programming Interface,应用程序编程接口)组成,如图1-1所示。

图1-1 Java平台的组成

1.Java虚拟机

Java源程序文件(扩展名为.java)被编译为类文件(扩展名为.class)后,后者包含的字节码(Bytecode)无法直接被CPU理解,需要由一个特殊的程序进行翻译和解释,该程序被称为Java虚拟机,如图1-2所示。不同的软硬件平台只需安装对应的Java虚拟机,同一个类文件便能不加修改地运行在各种平台上,从而保证了Java程序的可移植性。

图1-2 Java程序的执行过程

2.API

API是编程语言提供的一组具有基本功能的组件库(如C语言的库函数),编程者可以在程序中直接调用它们。对于Java来说,其API是一些类文件,因这些类文件的数量众多(往往多达几千个),故将它们打包成一个zip格式的压缩文件,该文件的扩展名为.jar(Java ARchive, Java归档),简称jar包一些第三方API也是以jar包的形式提供的。

1.3.2 版本划分

从JDK 1.2开始,Java被划分成3个版本—J2SE、J2EE和J2ME,以开发不同级别的硬件平台与计算环境下的Java程序。JDK 6.0发布时,3个版本被重新命名为Java SE、Java EE和Java ME。

(1)Java SE:Java Standard Edition, Java标准版。标准版适合开发运行于客户端的命令行或图形用户界面程序(通常称为桌面程序)。Java SE包含了Java的核心API,并为Java EE提供支撑。Java初学者应从标准版开始,这也是本书基于的版本。

(2)Java EE:Java Enterprise Edition, Java企业版。企业版适合开发和部署分布式的、业务逻辑相对复杂及数据量相对庞大的企业级应用。Java EE构建于Java SE的基础之上,其核心是一套关于组件和服务的规范与参考实现,如JSP、Servlet、EJB、JPA、JMS和JTA等,使得网络中所有遵循Java EE规范的异构平台和系统能够良好通信和交互。

(3)Java ME:Java Micro Edition, Java微型版。微型版适合开发运行在移动设备(如手机)或其他嵌入式设备(如电视机顶盒)上的Java程序。由于这些设备的计算能力、存储容量、能源、网络带宽及屏幕分辨率等都较计算机弱,因此,Java ME的虚拟机与核心API使用了Java SE的子集。此外,Java ME还提供了一些可选API以支持某些移动设备特有的功能,如多媒体、游戏和蓝牙通信等。世界上绝大多数的手机都不同程度地支持Java ME规范尽管同为支持Java的移动计算平台,但Java ME与Android无论是API还是程序的开发方式都是截然不同的。

需要说明的是,Java的优势和强大之处更多地体现于企业版,绝大多数读者在学习完标准版之后,应继续学习企业版。此外,学习微型版之前也应先学习标准版。

1.3.3 Java程序的种类

不同版本下的Java程序具有不同的开发方式和运行特点,这些程序可以分为以下几类。

(1)Standalone Application:独立应用程序,通常简称为应用程序。这种程序有且仅有一个main方法,虚拟机将该方法作为程序的执行入口点。根据运行界面的不同,独立应用程序又可分为控制台(Console,即命令行)独立应用程序和图形用户界面独立应用程序。以Java标准版开发的大多属于独立应用程序,本书后续各章节中的程序也是如此。

(2)Applet:小程序,也称为浏览器小程序。这种程序不能独立执行,一般通过两种方式执行:①嵌到HTML网页中,由浏览器(如IE)来执行这种方式只是通过浏览器将Applet下载到本机,Applet仍由本机上安装的Java虚拟机来执行。;②由JDK自带的Applet查看器执行。实际上,Applet的本质仍是图形用户界面应用程序,其也是以标准版开发的。

(3)JSP/Servlet:JSP(Java Server Page, Java服务器网页)是Java平台下的动态网页技术标准,属于Java企业版定义的规范之一。JSP的实质是嵌入了Java代码的HTML页面,其必须被部署到支持JSP规范的Web服务器一种安装于服务器的、能解释JSP页面中Java代码的软件,如Tomcat、JBoss等。中,并通过客户端的浏览器进行访问。Web服务器首先将JSP编译为Servlet(服务器小程序),然后执行页面中的Java代码,并将动态生成的内容填充到HTML页面中,最终将HTML页面返回给客户端的浏览器。

(4)MIDlet:MIDlet(Mobile Information Device Applet,移动信息设备小程序)是指运行在支持Java ME规范的移动设备上的Java程序。

Java是跨平台的编程语言,事实上,除了上述几种程序之外,还有一些基于其他平台的Java程序,如目前非常热门的Android程序等,这些程序运行在平台厂商特定的一套规范和API之上。此外,随着Java的不断发展,近年来还出现了一些新的Java技术,如JSF、Java FX等,但使用这些技术开发的Java程序目前尚未形成主流,故未列出。