Java高级编程(高等院校计算机任务驱动教改教材)是一本针对Java解决方案的书籍。随着开发项目的增大,以及开发团队人员的增加,项目管理显得越来越重要。本书将介绍注释文档自动生成、Java应用程序转换为操作系统平台直接运行的程序、实时监控程序的JMX技术、利用SVN版本控制等具有Java项目管理特征的技术作为第1章的开头。接下来的主要内容是在具有Java基础知识的前提下,学习如何利用Java类库实现数据结构的主要算法、Java网络编程、MINA框架、Java安全技术、远程对象调用、动态模块等内容。
本书适合软件技术相关专业高年级学生学习,也是Java工程师重要的参考资料。
Java自从诞生以来,一直是编程语言中的“万金油”,其使用范围广,市场占有率高。随着全球云计算和移动互联网的发展,Java进一步表现出其明显的优势和广阔的发展前景。因而Java是现在大多数企业在从事电子商务开发、企业信息化建设、Web应用开发时的首选技术。
实际开发过程中,Java程序员很少碰到只涉及语言本身的问题。因为Java在诸多方面都提供了解决方案。譬如在利用Java进行项目开发过程中如何进行有效的项目管理;如何直接利用Java类库实现数据结构中的算法;如何依靠典型的通信框架实现稳定的系统及建立安全的通信机制;如何实现远程对象的调用;如何实现动态模块等。随着本书学习的深入,读者会越来越感觉到Java不仅是一门编程语言,更重要的是Java提供了多种解决方案。
本书每一部分的内容都从提出一个具体的实际工作任务开始,分别通过详细设计、编码实现、源代码、测试与运行、技术分析、问题与思考几个步骤来完成。每个步骤各自需要达到的目的如下。
(1)详细设计。提出实现本任务的基本程序框架和主要算法等。
(2)编码实现。用Java语句实现详细设计,并对重点语句进行分析和说明。
(3)源代码。给出实现程序的完整源程序。读者可以逐步尝试并练习如何在前两个步骤的基础上写出自己的源程序,从而达到最终完成设计和编写源程序的目的。
(4)测试与运行。对以上编写的程序进行测试。有时用几组数据直接运行程序进行测试;有时需要编写测试程序,并对结果进行基本的分析。
(5)技术分析。该步骤是围绕提出的一个工作任务而进行的,对引出的知识需要系统地整理。如果按学科体系组织教学内容,这个步骤应放在最前面,然后再通过一些例子验证。本书基于工作过程,每个具体内容都先让读者知道如何做,再去梳理设计过程中所涉及的知识。
(6)问题与思考。这个步骤对学习过程中有疑问的一些问题进行讨论,既可以为以后的知识做一些铺垫,又可以对所学内容起到举一反三的作用。
各章内容如下。
第1章主要介绍注释文档自动生成、Java应用程序转换为操作系统平台直接运行的程序、实时监控程序的JMX技术、利用SVN版本控制等具有Java项目管理特征的技术。
第2章主要介绍标准Java库提供的最基本的数据结构,讲述如何利用Java编程语言实现各种传统的数据结构。
第3章从服务器端和客户端两个角度重点介绍利用Socket实现网络通信的示例。Java中网络程序有TCP和UDP两种协议,TCP通过握手协议进行可靠的连接,UDP则是不可靠的连接。
第4章介绍如何利用MINA框架开发通信软件。MINA封装了TCP/IP、线程等内容,由于其安全、稳定,以及开发人员无须考虑通信细节等特点,广泛应用在Client/Server模式的环境中。成功的案例包括Openfire和Spark搭建的及时通信环境。
第5章在介绍加密/解密基本知识的前提下,向读者展示如何用Java的类库实现私钥加密/解密、公钥加密/解密、数字签名等技术。
第6章介绍RMI框架及EJB框架,让读者能够实现RMI和CORBA编程,能够建立基本的EJB和发布技术。
第7章让读者了解OSGi动态模块——Bundle的基本结构,Bundle之间如何调用以及如何实现OSGi的Web应用等。
书中实例程序都已调试通过,因而读者在上机实践时,不会出现不必要的困惑。
本书在编写过程中得到了清华大学出版社的大力支持,在此表示衷心的感谢!由于时间紧迫,本书难免有不妥之处,欢迎各界专家和读者朋友批评指正,也欢迎读者交流。
编者
2016年8月
第1章Java开发环境及工具1
1.1注释文档的生成1
1.2jar与可执行文件的制作12
1.3JMX管理框架24
1.4版本控制34
第2章Java数据结构48
2.1顺序存储结构48
2.2链式存储结构54
2.3树66
2.4Java工具包72
第3章Java网络编程85
3.1Java网络编程概述85
3.2应用案例100
3.2.1通过流套接字连接实现客户机/服务器的交互100
3.2.2用UDP方式实现聊天程序108
3.3Web通信112
3.3.1用Java实现Web服务器112
3.3.2用JEditorPane实现浏览器的功能119
3.3.3WebSocket通信128
3.4邮件服务器136
第4章MINA与通信147
4.1MINA应用程序147
4.2MINA的状态机160
4.3在Windows下搭建基于Jabber协议的移动即时通信172
4.3.1安装Openfire173
4.3.2Jabber客户端的安装与配置181
4.3.3用Openfire开发文档187
第5章Java安全技术203
5.1类装载器203
5.2消息摘要210
5.3私钥密码术219
5.4用公钥加密数据226
5.5数字签名233
5.6保护C/S通信的SSL/TLS242
第6章远程对象256
6.1RMI远程方法的调用256
6.2CORBA268
6.3开发EJB278
第7章OSGi技术292
7.1OSGi的Bundle292
7.2OSGi应用程序开发301
7.3使用OSGi的HTTP服务322
参考文献333