什么是 Java 技术?
Java 技术(版本 2)是一种面向对象的编程语言,是 Sun Microsystems 所开发的编程平台。Java 技术基于单一 Java 虚拟机(JVM)的概念,JVM 是编程语言与机器底层软件和硬件之间的翻译器。编程语言的所有实现都必须模拟 JVM,从而使 Java 程序可以在具有 JVM 版本的任何系统上运行。
Java 编程语言是与众不同的,因为 Java 程序需要经过编译(翻译为叫做 Java 字节码的中间语言)和解释(通过 JVM 分析和运行字节码)。编译只进行一次,而解释则在每次运行程序时都要进行。编译的字节码是 JVM 的最佳机器码形式;解释程序是 JVM 的实现。
Java 平台具有三个版本(请参阅下面的 Java 平台的多个版本),该平台由 JVM 和 Java Application Programming Interface (API) 组成,Java API 是现成软件组件的集合,便于进行 applet 和应用程序的开发和部署,其中包括健壮的、安全的和可互操作的企业应用程序。Java API 被分组到相关类和接口的库中;这些库称为包。
了解更多信息:
要了解 Sun 的 Java 编程语言的未来发展方向,请阅读 2003 JavaOne Developer Conference 的 technical keynote digest。
Java 平台的多个版本
因为 Java 技术的迅速普及,开发人员强烈要求某些东西更简单些。Sun Microsystems 通过创建三个 Java 平台版本来满足此需要 ― Standard Edition、Enterprise Edition 和 Micro Edition。
了解更多信息:
J2SE (Java 2 Standard Edition)。包括标准的 Java 2 SDK、工具、运行时环境和 API,用于那些采用 Java 程序设计语言编写、部署和运行 applet 和应用程序的开发人员。 Merlin 的魔力 专栏极好地介绍了最新版本的 J2SE 1.4。
J2EE (Java 2 Enterprise Edition)。通过基于标准化模块组件,通过为这些组件提供一整套服务,以及通过自动处理应用程序行为的许多细节,而无需进行复杂编程,企业版简化了多层企业应用程序的构造和部署。J2EE 探索者 专栏将增加您对此版本的了解。
J2ME (Java 2 Micro Edition)。该版本是高度优化的 Java 运行时环境,针对特定的消费者领域,从智能型手机或寻呼机到机顶盒等一系列小型设备(外形小或者存储能力受限)。在“ J2ME 101,第 1 部分:介绍 MIDP 的高层 UI”教程中可以了解更多关于 J2ME 的信息。(您还可以在 developerWorks 无线 专题找到许多 J2ME 参考资料。)
Java 技术为什么重要?
总体来说,Java 语言的主要优点在于跨平台和操作系统的可移植性,以及它可以通过带宽相对较窄的通道提供(比如拨号连接)。Java 语言还具有可伸缩性;现有应用程序可以很容易地适应那些受内存资源限制的设备。另外,由于 Java 语言设计用于通过网络以安全的方式运行,所以当通过 Internet 操作时,它也提供了此级别的安全性。本质上,Java 技术将用户计算能力从桌面扩展到了 Web 资源。
什么是 Java 组件技术?
管理 Java 技术缩略词的字母汤(alphabet soup)可能是一项巨大的任务,就正如通过 Java Community Process 管理 Java 语言的发展一样。下面是 Java 语言各版本的组件、可选包和扩展包的部分列表(也就是组成这个平台的复杂部件),并给出了简短描述和参考资料链接,用以说明它在 Java 开发领域中的作用。注意下面许多参考资料都可以在各版本中使用。
J2SE 中的技术:
Java Access Bridge 用于 Microsoft Windows,它起到了网桥的作用,允许基于 Windows 的辅助技术与 Java Accessibility API 进行交互(请参阅“为可访问性编码”。)
JavaBeans Component Architecture 是平台独立的规范,它为 Java 平台定义了一套标准组件软件 API。(请参阅“Reflecting, introspecting, and customizing JavaBeans”。)
Javadoc 是一种工具,用于从源代码的 doc 注释中生成 HTML 格式的 API 文档。(请参阅“Java 理论和实践:我必须对那些内容进行文档编制吗?”。)
Java Foundation Classes (Swing) (JFC) 是 Java 类库的集合,它支持为基于 Java 的客户机应用程序构建 GUI 和图形功能。(请参阅“Java 2 用户界面”。)
Java Platform Debugger Architecture (JPDA) 是 Java 2 的调试支持基础设施。JPDA 包括三层 API:
JDI (Java Debug Interface)是一种支持远程调试的高级别编程语言接口。
JDWP (Java Debug Wire Protocol) 定义在调试过程和调试器前端之间传输的信息和请求的格式。
JVMDI (Java Virtual Machine Debug Interface) 是低级别本地接口,定义了调试时 JVM 必须提供的服务。
(请参阅“ 软件开发的未来 ”。)
Java 2D API 是用于高级 2D 图形和成像(为图像合成和 alpha 通道图像提供广泛支持)的类集合,是提供正确的色彩空间定义和转换的类集合,是面向显示的成像操作符的集合。(请参阅教程“Java 2D简介”。)
Java Web Start 使您可以通过单击而无需经历安装过程来下载和启动功能完善的应用程序(如电子表格),从而简化 Java 应用程序的部署。(请参阅“Java Web Start”。)
Java Database Connectivity (JDBC) 是一种 API,使您可以从 Java 内访问大多数表格式数据源,它提供了大多数 SQL 数据库的跨 DBMS 连通性,以及对其他表格式数据源的访问(如电子表格或平面文件)。(请参阅“JDBC 3.0 有什么新特性”。)
Remote Method Invocation (RMI) 提供引导命名服务,不会改变类型,并使用对象序列化使编程人员能够创建基于 Java 技术的分布式应用程序,在该应用程序中,可以从不同主机上的其他 Java 虚拟机上调用远程 Java 对象的方法。(请参阅教程“分布式对象 101-使用RMI和CORBA ”。)
Java Advanced Imaging (JAI) 是一种 API,提供了面向对象的接口的集合,这些接口支持简单的高级编程模型,使得开发人员可以很容易地操纵图像。(请参阅“利用 JSP 代码管理您的图像”。)
Java Authentication and Authorization Service (JAAS) 是一个包,它启用服务,通过实现标准 Pluggable Authentication Module (PAM) 框架的 Java 版本,通过支持基于用户的授权,对用户进行验证和执行访问控制。(请参阅教程“Java 安全性 第二部分 认证与授权”;“扩展 JAAS 实现类实例级授权”也是很好的信息来源。)
Java Cryptography Extension (JCE) 是一个包集合,提供了加密、密钥生成和协议以及 Message Authentication Code (MAC) 算法的框架和实现。它提供了对称、非对称、分组和流密码的加密支持,并支持安全流和密封对象。(请参阅教程“Java 安全性第一部分 密码学基础”。)
Java Data Objects (JDO) 是持久性的基于标准接口的 Java 模型抽象,它允许编程人员直接将 Java 域模型实例存储到持久存储(数据库)中,可能替代直接文件输入输出、序列化、JDBC 和 EJB Bean Managed Persistence (BMP) 或 Container Managed Persistence (CMP) Entity Bean 等方法。(请参阅教程“Java 数据对象上机实践”。)
Java Management Extensions (JMX) 提供的工具用于构建分布式、基于 Web 的、模块化和动态应用程序,以便管理和监视设备、应用程序和服务驱动的网络。(请参阅由三部分组成的“从黑箱到企业,第 1 部分:管理,JMX 1.1 样式”。)
Java Media Framework (JMF) 允许音频、视频和其他基于时间的媒体添加到 Java 应用程序和 applet 中。(请参阅教程“Java Media Framework 基础”。)
Java Naming and Directory Interface (JNDI) 是一种标准扩展包,为企业中的多个命名和目录服务提供具有统一接口的 Java 应用程序,允许不同种类的企业命名和目录服务的无缝连通性。(请参阅“EJB 最佳实践:工业强度的 JNDI 优化”。)
Java Secure Socket Extensions (JSSE) 是启用安全 Internet 通信的包集合,实现 SSL (Secure Sockets Layer) 和 TLS (Transport Layer Security) 协议的 Java 版本,并包括数据加密、服务器验证、消息完整性和可选客户机验证的功能。(请参阅教程“将 JSSE 用于安全套接字通信”。)
Java Speech API (JSAPI) 允许 Java 应用程序将语音技术合并到用户接口中。JSAPI 定义了跨平台的 API,以支持命令和控制识别程序、听写系统和语音合成器。(请参阅“The Java 2 user interface”部分。)
Java 3D 是一种 API,通过提供支持简单高级编程模型的一组面向对象的接口,开发人员可以使用它容易地将可伸缩的平台独立的 3D 图形合并到 Java 应用程序中。(请参阅教程“Java 3D 探奇 ”。)
J2EE 中的技术:
Java API for XML Processing (JAXP) 通过使应用程序解析和转换不依赖特定 XML 处理实现的 XML 文档,通过使开发人员可以灵活地在 XML 处理器程序之间进行交换,而无需更改应用程序代码,从而支持使用 DOM、SAX 和 XSLT 处理 XML 文档。(请参阅“使用 Java 编程利用在线 XML 数据”。)
Java API for XML Registries (JAXR) 为访问不同种类的 XML 注册中心提供了统一和标准的 API (用于构建、部署和发现 Web 服务的可用基础设施)。(请参阅 Java 技术标准。)
Java API for XML-based RPC (JAX-RPC) 使开发人员可以开发基于 SOAP 的可互操作的和可移植的 Web 服务。(请参阅 Java 技术标准。)
SOAP with Attachments API for Java (SAAJ) 使开发人员可以生产和消费符合 SOAP 1.1 规范和 SOAP with Attachments 注解的消息。(从“使用SAAJ发送和接收SOAP消息”开始;有关 XML 技术的详细信息,请参阅 developerWorks XML 专区。)
Common Object Request Broker Architecture (CORBA) 是异构计算的开放标准,通过提供分布式对象框架、支持该框架的服务以及与其他语言的互操作性,该标准对 Java 进行了补充。(请参阅教程“使用RMI和CORBA ”;“企业中的 RMI-IIOP”也是很好的信息来源)。
ECperf 是用于度量 Web 商务系统的性能和可伸缩性的基准。它包括:组成应用程序的 EJB 组件;使用 JSP 进行单一用户/交互测试的 Web 客户机;模式脚本和加载程序;makefile 和部署描述符;用于实现运行规则和模拟客户机加载的驱动程序。(请参阅 Java 技术标准。)
Enterprise JavaBeans (EJB) 是一种技术,通过提供对事务、安全性、数据库连通性等服务的支持,它使用组件模型来简化中间件应用程序的部署。(请参阅介绍该技术的教程“Enterprise JavaBean 基础”;另请参阅系列文章 EJB 最佳实践。)
Java Authorization Contract for Containers (Java ACC) 是一种规范,它定义了容器使用的授权提供者的安装和配置。Java ACC 定义了提供者必须使用的接口,从而允许容器部署工具创建和管理与角色相对应的权限集合。(请参阅教程“Developing accessible GUIs with Swing”。)
JavaMail 是一种 API,它提供了模拟邮件系统的抽象类的集合。(请参阅教程“ JavaMail API 基础”。)
Java Message Service (JMS) 是一种用来添加提供者框架的 API。通过定义所有兼容 JMS 技术的消息系统所支持的消息概念和编程策略的公共集合,该框架为 Java 平台启用了可移植的、基于消息的应用程序的部署。(请参阅“实现独立于供应商的 JMS 解决方案”。)
JavaServer Faces 提供了一种编程模型,通过汇集页面中可重用的 UI 组件,将这些组件连接到应用程序数据源以及将客户机生成的事件写入服务器端事件处理程序,该模型有助于开发人员开发 Web 应用程序。(请参阅“JSP pages, evolving and contributing to Web services”。)
JavaServer Pages (JSP) 使 Web 开发人员可以使用单独的用户界面和内容生成功能,快速地进行开发和轻松地维护动态的、平台独立的 Web 页面,这样设计人员就可以更改页面布局,而无需改变动态内容。该技术使用类似于 XML 的标签,这些标签封装了用于生成页面内容的逻辑。(请参阅教程“JSP 技术入门 ”;另请参阅系列文章 JSP 最佳实践。)
Java Servlets 是一种扩展和增强 Web 服务器功能的 Java 方式。要做到这一点,应该为构建基于 Web 的应用程序提供基于组件的平台独立的方法,而不会出现 CGI 程序的性能限制。(developerWorks 中有许多关于 servlet 的信息。“创建 Java HTTP Servlet”和“构建带会话跟踪的 Servlet”这两篇入门教程应该是最好的起点。)
J2EE Connector Architecture 定义了一种标准体系结构,通过定义一组可伸缩的、安全的事务性机制,允许 EIS 供应商提供插入到应用服务器中的标准资源适配器,该体系结构用于将 J2EE 平台连接到异构企业信息系统(Enterprise Information Systems, EIS)。(请参阅教程“J2EE Connector Architecture 介绍”。)
J2EE Management Specification (JMX) 定义了 J2EE 平台的管理信息模型。该模型设计用于与许多管理系统和协议互操作,包括到 Common Information Model (CIM)、SNMP Management Information Base (MIB)的模型的标准映射,以及通过服务器驻留 EJB 组件(J2EE Management EJB Component,MEJB)到 Java 对象模型的模型的标准映射。(请参阅“从黑箱到企业,第 1 部分:管理,JMX 1.1 样式”。)
Java Transaction API (JTA) 是高级的独立于实现和协议的 API,它允许应用程序和应用程序服务器访问事务。Java Transaction Service (JTS) 指定 Transaction Manager 的实现, Transaction Manager 支持 JTA,并在低于 API 的级别上实现 OMG Object Transaction Service (OTS) 1.1 规范的 Java 映射。JTS 使用 Internet Inter-ORB Protocol (IIOP) 传输事务。(请参阅“理解 JTS ― 平衡安全性和性能 ”。)
J2ME 中的技术:
Connected Limited Device Configuration (CLDC) 是组成资源受限移动信息设备的 Java 运行时环境的两个配置之一。CLDC 提供了最基本的库集合和虚拟机功能,在包含 K 虚拟机(KVM)的 J2ME 环境的每个实现中,这些都是必须存在的。(请参阅“Know no limits: Approaches to mobile device constraints”)
Mobile Information Device Profile (MIDP) 是组成资源受限移动信息设备的 Java 运行环境的两个配置之一。MIDP 提供核心应用程序功能,包括用户界面、网络连通性、本地数据存储和应用程序生命周期管理。(请参阅教程“Implementing Push technology with J2ME and MIDP”。)
Connected Device Configuration (CDC) 是一种基于标准的框架,用于构建和提供可在许多网络连接消费者和嵌入式设备之间共享的应用程序。(请参阅“Securing wireless J2ME”。)
developerWorks Wireless technology 专区包含了 J2ME 相关技术的多篇文章和教程。
Java 网络技术:
JAIN APIs 是一组基于 Java 的 API,用于快速开发下一代电信产品和服务。(请参阅 Java 技术标准。)
Java Metadata Interface (JMI) 是实现动态的、平台独立的基础设施的规范,它允许进行元数据的创建、存储、访问、发现和交换。该规范基于 Object Management Group (OMG) 的 Meta Object Facility (MOF) 规范,由一组使用统一建模语言(Unified Modeling Language,UML)描述的基本建模工件组成。(请参阅 Java 技术标准。)