Java是一种使我们对计算的理解有所改变的编程语言,本书则对该语言提供了一个易于理解同时又颇为详尽的介绍。Java已经成为大量应用的首选语言,如Web服务、安全网络系统、基于XML的工具、可重用组件以及关键任务企业系统。本书中有大量易于学习的代码示例,由此可以指导你掌握Java的许多特性、API和功能。
这一新版已得到了扩展和更新以面向Java 2 SDK 1.4。在此详尽地介绍了诸如Web应用、servlet和XML等重要内容,它们对于企业应用的发展起到了显著的推动作用。第二版中完全涵盖了Java 1.4的所有语言特性,其中包括断言和异常链,另外还介绍了诸如正则表达式和NIO(新I/O包)等新的API。新加入的Swing特性和组件在此也有所描述,另外所涉及的内容还包括使用开源NetBeans IDE的JavaBeans组件体系结构、有关applet的最新信息,以及面向所有主流Web浏览器的Java插件。
随书光盘
为你提供了着手使用Java所需的所有内容。除了本书的许多示例程序以外,光盘中还包括了完整的J2SE SDK 1.4、NetBeans IDE、Jakarta项目的Ant make实用工具和Tomcat应用服务器,另外还提供了BeanShell,这是由本书作者Pat Niemeyer所开发的一个简单的开源Java脚本语言。
前言
第一章 只是另一种语言吗?
进入Java世界
虚拟机
Java与其他语言的比较
设计安全
实现安全
应用和用户级安全性
Java与Web
Java 作为通用应用语言
Java路线图
第二章 第一个应用
HelloJava
HelloJava2:余波未平
HelloJava3:按钮的震撼!
HelloJava4:Netscape的反戈一击
第三章 使用工具
Java解释器
类路径
策略文件
Java编译器
Java归档(JAR)文件
第四章 Java语言
文本编码
注释
类型
语句和表达式
异常
断言
数组
第五章 Java中的对象
类
方法
对象创建
对象销毁
第六章 类之间的关系
派生子类和继承
接口
包与编译单元
变量和方法的可见性
数组和类的层次体系结构
内部类
第七章 使用对象和类
Object类
Class类
反射
第八章 线程
引入线程
applet中线程的实现
同步
调度和优先级
线程组
线程性能
第九章 文本处理
其他与文本相关的API
String
解析与格式化文本
国际化
java.text包
正则表达式
第十章 核心实用工具
数学实用工具
日期
定时器
集合
特性
首选项API
日志API
Observer和Observable
第十一章 输入/输出功能
流
文件
串行化
数据压缩
NIO包
第十二章 网络编程
套接字
数据报套接字
简单串行化对象协议
远程方法调用
使用NIO的可伸缩I/O
第十三章 Web编程
统一资源定位器(URL)
URL类
实用的处理器
第十四章 servlet与Web应用
强大的工具servlet
Web应用
servlet生命期
Web servlet
HelloClient servlet
servlet响应
servlet参数
ShowParameters Servlet
用户会话管理
ServletContext API
WAR文件和部署
重新加载WebApp
错误和索引页面
安全性和鉴别
servlet过滤器
使用Ant构建WAR文件
第十五章 Swing
组件
容器
事件
事件总结
AWT Robot!
Swing中的多线程
第十六章 使用Swing组件
按钮和标签
复选框和单选钮
列表框和组合框
增减器
边框
菜单
PopupMenu类
JScrollPane类
JSplitPane类
JTabbedPane类
滚动条和滑块
对话框
第十七章 再谈Swing组件
文本组件
焦点导航
树
表
桌面
可插拔观感
创建定制组件
第十八章 布局管理器
FlowLayout
GridLayout
BorderLayout
BoxLayout
CardLayout
GridBagLayout
非标准布局管理器
绝对定位
SpringLayout
第十九章 使用2D API绘图
整体结构
表现通道
2D API快速浏览
填充形状
描画形状轮廓
使用字体
显示图像
绘制技术
打印
第二十章 使用图像及其他媒体
ImageObserver
MediaTracker
生成图像数据
过滤图像数据
简单音频
Java 媒体框架
第二十一章 JavaBeans
什么是Bean?
NetBeans IDE
特性和定制器
事件关联和适配器
绑定特性
构建Bean
可视化设计的限制
串行化与代码生成
使用BeanInfo进行定制
用手写代码使用Bean
BeanContext和BeanContextService
Java激活框架
Enterprise JavaBeans
第二十二章 applet
applet策略
JApplet类
标签
使用Java插件
Java Web Start
使用数字签名
第二十三章 XML
背景知识点拨
XML基础
SAX
DOM
验证文档
XSL/XSLT
Web服务
附录一 内容和协议处理器
附录二 BeanShell:简单Java脚本
词汇表
本书所讨论的是Java TM语言和编程环境。无论你是一位软件开发人员,抑或仅仅在过去数年经常上网,无庸置疑,Java对你而言都可谓耳熟能详。Java的引入在Internet的发展历程中堪称最精彩的手笔之一。自1995年发布了Java alpha版本以来,它就成为了Internet编程群体的最爱。“忽如一夜春风来,千树万树梨花开”,数以千计的人都纷纷开始编写Java applet,并加至其Web页面上。自此以后,Java从最早基于浏览器开始“起步”,逐步成长壮大起来,直到目前,Java无疑已成为世界上最流行的编程语言,并得到了数百万人的使用。近年来,在开发人员的需求方面,Java已经超越了C++和Visual Basic,而逐步成为面向新型开发(特别是基于Web的应用和服务)的实战语言。许多大学都将Java连同其他重要的现代语言一起作为学生的基础课程。没准你正是在课堂上阅读这段文字呢!那么,究竟什么是Java呢?Java是一种由Sun公司开发的新型编程语言,用以操控各种各样的计算设备,并在网络化应用领域取得了巨大成功。Java被广泛用于创建交互式的Web页面和Web服务。不过,这还只是其“冰山一角”。Java语言和环境相当丰富,足以为诸如动态可扩展Web浏览器和移动代理等新型应用提供支持。围绕着Java已经开发出而且还正在开发全新的计算机平台,这其中包括手持设备以及通过网络动态下载所有软件的网络计算机。在未来数年里,我们将对Java的功用有更多的了解。有着奇思妙想的Web页面很有趣也很值得玩味,但这当然不是Java的全部。Java的成功使我们从根本上改变了对计算的理解。
本书将为你提供有关Java的全面的基础知识。此第二版力图通过完备地介绍Java语言。其类库。编程技术以及术语,从而成为一本名符其实的入门级图书。我们将深入地探讨一些有意思的领域,对于其余方面,则至少会浮光掠影地谈到。有关我们概略涉及的领域,O'Reilly & Associates专门出版了其他图书,它们对Java的特定领域和应用提供了更为详尽的信息。
只要有可能,我们便会提供有影响而且有实际意义的例子,而避免简单地对特性加以罗列。这些例子尽管很简单,但对于所能做的工作却提供了充分的提示。在此并不打算仅由这些介绍即开发出另一个“超级应用”,不过,我们希望你花费一些时间完成这些实验,并以此为起点做进一步的思考,以便自行领悟出更多的内容。
最新发展
本书实际上是《Exploring Java》(O'Reilly已经出版的一本畅销书)的第4版,在此做了重新整理,并且改了名字。在每一次新版推出时,我们不仅加入了涉及新增特性的新内容,而且还特别注意了对现有内容进行全面的修订和更新,从而将所涉及领域加以综合,并且在书中加入数年来的实际经验和观点。在最近的版本中,有一个值得注意的调整,即我们弱化了applet的使用,这反映了过去一两年中applet在创建交互式Web页面方面所起到的作用稍显“一成不变”。另外,这一版则大幅扩展了Web应用和服务的介绍,这些内容目前已经是成熟的技术了。我们还增加了有关XML和XSL处理的一章,这些则是非常重要的新技术。我们所介绍的是Sun最新Java版本的最有意思的特性,此版本官方称为Java 2标准版(Java 2 Standard Edition,J2SE)SDK 1.4版本[原来将其称为“JDK”(Java Development Kit,Java开发包)],现在Sun均使用“SDK”,以表示软件开发包(Software Development Kit)。Sun用“Java 2”一词涵盖了Java 1.2版本中所引入的主要的新特性。如果有必要提到版本,我们将把它们简单地称为Java 1.x。Java 1.4中的新特性包括对servlet和Web应用的改进。正则表达式。Swing改善。诸如断言和链式异常等新的语言特性。日志和首选项API,还包括一个全新的I/O功能。
在Java的最近发展(1.2版本)中,还有另一个重要的改变,这就是:对于图形用户界面(GUI)编程,Java Swing作为主API呈现出强劲的优势。对于本书中与AWT(这是Java原来的GUI编程接口)有关的所有内容,目前已经重新整理并更新为Swing功能。
本版新内容
我们对这一版进行了相当程度的重写,从而尽可能地做到最新和全面。本版的新主题包括:
语言断言和异常链(第四章)
正则表达式(第九章)
新增的首选项和日志API(第十章)
面向可伸缩I/O的包(第十一章和第十二章)
servlet和Web应用API的全面介绍(第十四章)
Swing的更新,包括格式化文本和新的焦点系统(第十五章~第十七章)
使用NetBeans IDE的JavaBean示例(第二十一章)
有关Java插件和applet签名的信息(第二十二章)
对XML的全面介绍,包括SAX。DOM。DTD。XSL/XSLT和新的JavaBeans
XMLEncoder(第二十三章)
读者对象
本书主要面向计算机专业人士、学生、技术人员以及黑客。如若需要构建实际的应用,而希望得到有关Java语言的第一手经验,那么本书正可应你所需。这本书还可以作为一本面向对象编程的绝佳教程,因为在了解Java的同时,你也将同时掌握一种功能强大而且实用的方法来实现面向对象软件开发。
Java与C或C++非常相像,如果对于这些语言有一定的编程经验,那么在使用这本书时将有一个更高的起点。不过,即使从未使用C或C++编程,也不必担心。不要过分关注Java和C或C++在语法上的相似性。在许多方面,Java则与诸如Smalltalk和Lisp等更为动态的语言具有可比性。如果有另一种面向对象编程语言的知识,当然会对你有所帮助,不过可能需要你改变一些观念,同时要摒弃一些原有的习惯。
较之于C++和Smalltalk,Java要简单得多。如果你希望通过简洁的好例子和个人的实验尝试而有所收获,那么这本书将如你所愿。
在此鼓励你将视野放开阔,如果我们忽略了Web,那么你定会倍感失望。本书中相当多内容所讨论的即为Web应用环境下的Java,所以你应当对Web浏览器。服务器和文档等基本思想有所熟悉。
本书的内容组织
这本书大致如下组织:
第一章“只是另一种语言吗?”和第二章“第一个应用”提供了Java概念的基本介绍,并提供了一个教程以作为Java编程的起步。
第三章“使用工具”讨论了使用Java进行开发时所用的工具(编译器、解释器以及JAR文件包)。在此还涵盖了诸如对象签名和支持在HTML中嵌入Java代码等重要概念。
第四章“Java语言”到第八章“线程”所描述的是Java语言本身。第八章介绍了语言的线程功能,对于高级程序员来说这应当是其最感兴趣的一个方面。
第九章“文本处理”介绍了基本的字符串实用工具和功能强大的正则表达式API。
第十章“核心实用工具”和第十一章“输入/输出功能”介绍了大多数核心API。
第十章所谈到的是基本实用工具,第十一章则是对I/O功能的说明。
第十二章“网络编程”和第十三章“Web编程”介绍了Java网络化的内容,其中包括:套接字和NIO。URL以及RMI(remote method invocation,远程方法调用)。
第十四章“servlet和Web应用”介绍了使用servlet、servlet过滤器和WAR文件的Web应用。
第十五章“Swing”到第二十章“使用图像及其他媒体”介绍了抽象窗口工具包(Abstract Window Toolkit,AWT)和Swing,它们可提供GUI(graphical user interface,图形用户界面)和图像支持。
第二十一章“JavaBeans”介绍了JavaBeans TM组件体系结构。
第二十二章“applet”介绍了applet,Java正是在这一领域获得了最初的成功。
第二十三章“XML”介绍了处理XML和XSLT的Java API。
如果你也同我们一样有一定的经验,那么无需从头至尾通读全书。如果你确实有颇高造诣,则往往根本不必读此前言。不过,倘若你此时恰好在看这一内容,那么以下建议可供参考:
如果你是一个经验颇丰的程序员,而且必须在极短的时间内掌握Java,那么可能需要查看书中的示例。可以先粗略地学习第二章中的教程。如果不能满足你的需要,则至少应当了解第三章中的信息,在此将告诉你如何使用编译器和解释器,并提供有关独立Java应用的基础知识。这里可作为你的起点。
如果你对编写高级网络化或者基于Web的应用很感兴趣(这也是Java最有趣而且最重要的领域之一),那么第十二章到第十四章是必读的。
第十五章到第二十一章讨论了Java的图形特性和组件体系结构。如果你致力于编写图形Java应用或applet,那么就应当阅读这一部分。
第二十二章介绍了applet API,其中包括保证浏览器兼容性的Java插件(Plug-in)以及面向高级应用的签名applet。
第二十三章介绍了处理XML的Java API,在此包括SAX、DOM、DTD以及使用XSL为Web提供输出。XML技术正日渐成为跨平台开发的关键。
光盘内容
随书光盘提供了着手使用Java所需的所有内容。光盘上的开源软件包括:
Java 2标准版(Java 2 Standard Edition)SDK(1.4.0版本)
NetBeans(3.3.1版本),这是一个处理JavaBean的可视化IDE
Ant(1.4.1版本),这是一个基于Java的构建工具
Tomcat(4.0.3版本),这是一个来自Jakarta项目的Java servlet引擎
BeanShell(1.2版本),这是一个简单的Java脚本语言
在线资源
关于Java有许多在线的信息资源。Sun公司的Java官方网站是http://java。sun。com,在此可以获取最新新闻。升级软件和各个Java版本。在这里也能找到Java软件开发工具包(SDK),其中包括编译器。解释器和其他工具(此SDK在随书光盘上也有提供)。
也可以访问O'Reilly公司的Java站点http://java.oreilly.com,在此能够找到关于O'Reilly公司所出版的Java系列其他书籍的信息,以及本书的主页链接,http://www.oreilly.com/catalog/learningjava2/,其中可以找到本书中所有例子的源代码。comp.lang.java新闻组也是一个很好的资源,其中包括信息和公告,并且可以提出自己感兴趣的问题。.
请将有关本书的意见和问题寄至出版商,地址如下:
美国:
O'Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
100080北京市海淀区知春路49号希格玛公寓B座809室
奥莱理软件(北京)有限公司
我们为此书建有一个网页,其中列出了勘误。示例或其他附加信息。网页地址为:
http://www.oreilly.com/catalog/learnjava2
如果你想询问本书所涉及的技术问题,可以发电子邮件到:
bookquestions@oreilly.com
info@mail.Oreilly.com.cn
有关本书更多的信息,请访问O'Reilly出版社的网站:
http://www.oreilly.com
http://www.oreilly.com.cn