1.3.3 Java程序的种类

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

1. Standalone Application

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

2. Applet

Applet,即小程序,也称为浏览器小程序。这种程序不能独立执行,一般通过两种方式:①嵌到HTML网页中,由浏览器来执行[5];②由JDK自带的Applet查看器执行。实际上,Applet的本质仍是图形用户界面程序(只不过程序入口不再是main方法),它也是以标准版开发的。目前,Applet程序已很少使用。

3. JSP/Servlet

JSP(Java Server Page,Java服务器端网页)是Java平台下的动态网页技术标准,属于Java企业版定义的规范之一。JSP的实质是嵌入了Java代码的HTML页面,其必须被部署到支持JSP规范的Web服务器[6]中,并通过浏览器进行访问。Web服务器首先将JSP编译为Servlet(服务器端小程序),然后执行页面中的Java代码,并将动态生成的内容填充到HTML页面中,最后将HTML页面交由浏览器渲染。

4. Android App

Android是Google于2007年11月发布的基于Linux平台的智能手机操作系统,Android系统从下至上包括Linux内核层、系统运行库层、应用程序框架层以及应用程序层。目前,绝大多数的Android App[7]是以Java语言编写的,并由Android SDK(Software Development Kit,软件开发工具)编译、打包成一个扩展名为APK(Android PacKage,Android安装包)的zip格式压缩文件,该文件包含了Android系统特有的虚拟机所能理解的字节码。

5. MIDlet

MIDlet(Mobile Information Device Applet,移动信息设备小程序)是指运行在支持Java ME规范的移动设备上的Java程序。实际上,在以Android和iOS为代表的智能手机操作系统出现之前,市场占有率最高的手机操作系统是Nokia的Symbian,而Symbian是支持MIDlet程序的。伴随着Android和iOS的绝对垄断,Symbian平台早已落寞,目前MIDlet程序已使用较少,仅出现在某些特定领域(如智能卡)。

事实上,除了上述几种程序之外,还有其他一些基于特定平台、规范和API的Java程序,如JSF、Java FX等,但它们目前尚未成为主流,故未专门列出。


[1]一些第三方API也是以jar包的形式提供的。

[2]此处的版本是对Edition一词的翻译。实际上,SE、EE和ME各自都有不同的发布版本号(Version)。

[3]2017年11月,Oracle将Java EE移交给Eclipse基金会。2018年3月,Eclipse基金会宣布将Java EE更名为Jakarta EE。

[4]尽管同为支持Java的移动计算平台,但Java ME与Android的虚拟机、API及程序开发方式都截然不同。

[5]这种方式只是通过浏览器将Applet下载到本机,Applet仍由本机上安装的、已向浏览器注册的JRE来执行。

[6]一种安装于服务器端的、能解释JSP页面中Java代码的软件,如Tomcat、Jetty、JBoss等。

[7]为区别于传统的PC端应用程序(Application),移动端的应用程序通常称为App。