developerWorks Java? technology 专区包含关于 Java 的数百篇文章、教程和技巧,可以帮助软件开发人员了解 Java 平台和相关技术的大多数方面。但是,如果您正在寻找一个起点,仅仅是筛选 Web 上现有的大量参考资料就会令您晕头转向。developerWorks 提供这个页面是为了在 Java 语言的总体环境中概述 Java 技术的基本知识。它提供了 developerWorks 中相关的介绍性内容、其他教学参考资料以及 IBM 下载和产品的链接,可以以此为起点对 Java 进行进一步探索。
Java 技术既是一种高级的面向对象的编程语言,也是一个平台。Java 技术基于 Java 虚拟机(Java virtual machine,JVM)的概念 —— 这是语言与底层软件和硬件之间的一种转换器。Java 语言的所有实现都必须实现 JVM,从而使 Java 程序可以在有 JVM 的任何系统上运行。 Java 编程语言(Java programming language) 与众不同之处在于:Java 程序既是编译型的(compiled)(转换为一种称为 Java 字节码的中间语言),又是解释型的(interpreted)(JVM 对字节码进行解析和运行)。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对 JVM 优化过的机器码形式;解释器是 JVM 的实现。 Java 平台(Java platform) 是一种纯软件平台,它可以在各种基于硬件的平台上运行。它有三个版本(参见后面的 Java 平台的多个版本)。它由 JVM 和 Java 应用程序编程接口(Java Application Programming Interface,API)组成。Java API 是一个大型的现成软件组件(类)集合,它可以简化 applet 和应用程序的开发和部署,包括健壮、安全且可互操作的企业应用程序。它涵盖从基本对象到连网和安全性,再到 XML 生成和 Web 服务的所有东西。Java API 组织成相关类和接口的库;库也称为包(package)。 除了 Java API 之外,每个完整的 Java 平台实现还包含:
- 用来编译、运行、监视、调试应用程序以及建立应用程序文档的开发工具。
- 用来部署应用程序的标准机制。
- 用来创建复杂的图形用户界面(GUI)的用户界面工具包。
- 用来启用数据库访问和操作远程对象的集成库。
Java 技术是最初由 Sun Microsystems 公司开发的。Java Community Process(JCP,一个由全世界的 Java 开发人员和获得许可的人员组成的开放性组织)对 Java 技术规范、参考实现和技术兼容性包进行开发和修订。在 2006 年 8 月,Sun Microsystems 宣布它打算开放 Java 平台的源码,并开始征询对许可协议和管理方式的反馈。
Java 语言的主要好处是,Java 应用程序可以跨硬件平台和操作系统进行移植 —— 这是因为每个平台上安装的 JVM 都可以理解同样的字节码。 Java 语言和平台的可伸缩性非常强。在低端,现有的应用程序可以很容易地适应内存资源有限的设备。这种语言是进行服务器端 Web 编程的理想框架。因为它被设计为按照一种安全的方式通过网络运行,在通过互联网进行操作时,它提供了一定程度的安全性。在本质上,Java 技术将用户的计算能力从桌面扩展到了 Web 资源。Web 组件由称为Web 容器(Web container) 的运行时平台支持,Web 容器的服务包括请求分派、安全性、并发性、生命周期管理以及对命名、事务和电子邮件等 API 的访问。在高端,Java 应用服务器(application server) 作为 Java 组件、XML 和 Web 服务的 Web 容器,可以与数据库进行交互并提供动态的 Web 内容;它们还为企业应用程序提供应用程序开发环境,具有事务管理、安全性、集群、性能、可用性、连接性和可伸缩性等功能。 Java 语言是第一批支持企业开放标准的技术之一,支持使用 XML 和 Web 服务跨业务线共享信息和应用程序(参见下面的 Java 技术与 SOA/Web 服务的关系)。Java 技术是许多 IBM 产品和技术咨询服务的核心(参见下面的 Java 程序员可用的 IBM 工具和产品),是 IBM 发展计划的重要部分:
Java 平台的多个版本 Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发:
developerWorks Java technology 专区维护了 标准 Java 组件技术 的完整词汇表。下面是每个 Java 平台版本的组件、可选包和扩展的部分列表,以及简短的描述和参考资料的链接,可以通过这些参考资料进一步了解这些组件在 Java 开发中的作用。注意,下面的许多参考资料同时适用于三个版本。 Java SE 中的技术:
-
JavaBeans Component Architecture 是一个为 Java 平台定义可重用软件组件的框架,可以在图形化构建工具中设计这些组件。(参见 “Reflecting, introspecting, and customizing JavaBeans”。)
-
Java Foundation Classes(Swing)(JFC)是一套 Java 类库,支持为基于 Java 的客户机应用程序构建 GUI 和图形化功能。(参见教程 “Swing 入门”;“使用 Swing 进行动态界面设计” 和 “增强图形用户界面的可访问性” 也有助于掌握 Swing。)
-
JavaHelp 是一个独立于平台的可扩展的帮助系统,开发人员和作者可以使用它将在线帮助集成到 applet、组件、应用程序、操作系统和设备中,还可以提供基于 Web 的在线文档。(参见 “向 Java 应用程序伸出援助之手”。)
-
Java Native Interface(JNI)使 JVM 中运行的 Java 代码可以与用其他编程语言编写的应用程序和库进行互操作。(参见 “用 Java 代码处理本地对象的事件”。)
-
Java Platform Debugger Architecture(JPDA)是用于 Java SE 的调试支持基础结构。(参见 “诊断 Java 代码: 软件开发的未来”。)
-
Java 2D API 是一套用于高级 2D 图形和图像的类(为图像组合和 alpha 通道图像提供丰富的支持)、一套提供精确的颜色空间定义和转换的类以及一套面向显示的图像操作符。(参见教程 “Java 2D 简介”。)
-
Java Web start 允许用户通过一次点击下载并启动特性完整的应用程序(比如电子表格),而不需要进行安装,从而简化 Java 应用程序的部署。(参见 “Java Web Start”。)
-
Certification Path API 提供了一套用于创建、构建和检验认证路径(也称为 “认证链”)的 API,可以安全地建立公共密钥到主体的映射。(参见 “为测试 Java 应用程序生成证书链”。)
-
Java Database Connectivity(JDBC)是一个 API,它使用户能够从 Java 代码中访问大多数表格式数据源,提供了对许多 SQL 数据库的跨 DBMS 连接能力,并可以访问其他表格式数据源,比如电子表格或平面文件。(参见 “JDBC 3.0 有什么新特性” 和教程 “理解 JDBC”。)
-
Java Advanced Imaging(JAI)是一个 API,它提供一套面向对象的接口,这些接口支持一个简单的高级编程模型,使开发人员能够轻松地操作图像。(参见 “利用 JSP 代码管理您的图像”。)
-
Java Authentication and Authorization Service(JAAS)是一个包,它实现了标准的 Pluggable Authentication Module(PAM)框架的 Java 版本并支持基于用户的授权,使服务能够对用户进行身份验证和访问控制。(参见 “用 JAAS 和 JSSE 实现 Java 安全性” 和 “Java 授权内幕”;教程 “Java 安全性, 第 2 部分: 认证与授权” 也有帮助。)
-
Java Cryptography Extension(JCE)是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现。它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。(参见教程 “Java 安全性,第 1 部分: 密码学基础”。)
-
Java Data Objects(JDO)是一种基于标准接口的持久化 Java 模型抽象,使程序员能够将 Java 领域模型实例直接存储进持久化存储(数据库)中,这可以替代直接文件 I/O、串行化、JDBC 以及 EJB Bean Managed Persistence(BMP)或 Container Managed Persistence(CMP)实体 bean 等方法。(参见教程 “Java 数据对象上机实践”;更深入的解释请参考 “无需容器的对象关系映射”。)
-
Java Management Extensions(JMX)提供了用于构建分布式、基于 Web、模块化且动态的应用程序的工具,这些应用程序可以用来管理和监视设备、应用程序和服务驱动的网络。(参见 “使用 Java 平台管理 bean”。)
-
Java Media Framework(JMF)可以将音频、视频和其他基于时间的媒体添加到 Java 应用程序和 applet 中。(参见教程 “Java Media Framework basics”。)
-
Java Naming and Directory Interface(JNDI)为 Java 应用程序提供一个连接到企业中的多个命名和目录服务的统一接口,可以无缝地连接结构不同的企业命名和目录服务。(参见 “工业强度的 JNDI 优化”;还可以参考 “走出 JNDI 迷宫”。)
-
Java Secure Socket Extensions(JSSE)是一组包,它们支持安全的互联网通信,实现了 SSL(Secure Sockets Layer)和 TLS(Transport Layer Security)的 Java 版本,包含数据加密、服务器身份验证、消息完整性和可选的客户机身份验证等功能。(参见 “用 JAAS 和 JSSE 实现 Java 安全性”;还可以参考教程 “将 JSSE 用于安全套接字通信”。)
-
Java Speech API(JSAPI)包含 Grammar Format(JSGF)和 Markup Language(JSML)规范,使 Java 应用程序能够将语音技术集成到用户界面中。JSAPI 定义一个跨平台的 API,支持命令和控制识别器、听写系统和语音识别器。(参见 “Java 2 用户界面”。)
-
Java 3D 是一个 API,它提供一套面向对象的接口,这些接口支持一个简单的高级编程模型,开发人员可以使用这个 API 轻松地将可伸缩的独立于平台的 3D 图形集成到 Java 应用程序中。(参见教程 “Java 3D 探奇”。)
-
Metadata Facility 允许给类、接口、字段和方法标上特定的属性,从而使开发工具、部署工具和运行时库能够以特殊方式处理它们。(参见 “Tiger 中的注释,第 1 部分: 向 Java 代码中添加元数据”。)
-
Java Content Repository API 是一个用于访问 Java SE 中独立于实现的内容存储库的 API。内容存储库是一个高级信息管理系统,它是传统数据存储库的超集。(参见 “Java Content Repository API 简介”。)
-
Enumerations(枚举) 是一种类型,允许以类型安全的方式将特定的数据表示为常量。(参见 “枚举类型入门”。)
-
Generics(泛型) 允许定义具有抽象类型的参数的类,可以在实例化时指定这些参数。(参见 “介绍 JDK 5.0 中的泛型”。)
-
Concurrency Utilities 是一套中级实用程序,提供了并发程序中常用的功能。(参见教程 “JDK 5.0 中的并发”。)
-
Java API for XML Processing(JAXP)允许 Java 应用程序独立于特定的 XML 处理实现对 XML 文档进行解析和转换,允许灵活地在 XML 处理程序之间进行切换,而不需要修改应用程序代码。Java API for XML Binding(JAXB)允许在 XML 文档和 Java 对象之间进行自动的映射。(参见分三部分的教程 “利用 Java 技术进行 XML 编程”;还可以阅读 “JAXP 全面介绍,第 1 部分” 和 “JAXP 全面介绍,第 1 部分” 来进一步了解 JAXP; 实用数据绑定 文章系列提供了更多信息;还可以访问 developerWorks XML 专区。)
-
SOAP with Attachments API for Java(SAAJ)使开发人员能够按照 SOAP 1.1 规范和 SOAP with Attachments note 生成和消费消息。(参见 “技巧: 使用SAAJ发送和接收SOAP消息”;“Java Web 服务进阶” 会帮助您掌握 Java Web Services Developers Pack。)
驯服 Tiger 专栏对 Java SE 5 做了精彩的概述。
|