出版时间:2009-2 出版社:中国电力出版社 作者:Ian F.Darwin 页数:784
Tag标签:无
前言
JDK 1.5(代号为“猛虎”)是Java阵营的一个重大创举。它引入多个主要的新特征,例如:简化数据结构的泛型,以灵活而又定义明确的方式注释Java类的元数据,用于读取数据的基于模式的新机制,以及用于格式化打印的新机制等。此外,新版本中还包括了许多细微却很重要的改动,这些改动对Java开发者而言是必须的。虽然你很想马上弄懂这些机制,但是要完全理解和融会贯通这些机制还是需要花费一些时间的。我在第一版的编后记中写道:“写这本书是一段不堪回首的经历。”当许多评论家和作家在大肆炫耀自己的荣誉时,我却在为自己在第一版中的错误和疏漏而感到尴尬不堪。因此,在这一版本中,我尽力做了修正。与此同时,我增加了一些新实例,并摒弃了小部分旧实例。最大的新增部分就是第8章,主要讨论泛型和枚举,以及能为诸如Java Collection这样的容器提供更多灵活性的特征。当前,JaVa已经包含了正则表达式的API,因此,第4章就由Apache的正则表达式API过渡到JDK 1.4正则表达式。
内容概要
本书收集了Java开发人员经常遇到的成百个问题的解决方案,涵盖了Java应用的方方面面,堪称讲述Java应用的百科全书。书中的实例从正确设置CLASSPATH和读取环境信息这样的简单任务,到应用XML,或者使用JDK 1.5所带的并发性工具实现多线程编程的完整程序,几乎无所不包。 无论你是否直接使用书中的实例,作为灵感的源泉,作为学习Java的工具,或者用于其他用途,本书都将成为你图书收藏中的珍品。还没有一本书能够如此全面地讲述Java的诸多功能,并能够如此容易地运用到实践当中去。作为第二版,本书更像是一部秘笈,指引你获取最新的第三方资源,以及提供实用的“招式”。本书展现了JDK 1.5中许多新的编程语言与API特性,这些都包括在那些实例中。
作者简介
Ian F.Darwin有三十年的计算机软件开发经验,是Learning Tree国际教育公司的讲师和课程设计师。
书籍目录
前言第1章 起步走:编译、运行和调试Java程序 1.0 简介 1.1 编译和运行Java程序:JDK方式 1.2 采用带彩色突出显示的编辑器编辑和编译程序 1.3 采用IDE编译、执行和测试程序 1.4 有效使用CLASSPATH 1.5 使用本书的com.darwinsys API类 1.6 编译本书的源代码示例 1.7 使用Ant工具自动编译和执行Java程序 1.8 Applet 1.9 处理过期警告 1.10 没有#ifdef的条件编译 1.11 调试信息的输出 1.12 使用断言机制维护程序 1.13 使用调试器JDB 1.14 单元测试 1.15 获取可读的回溯 1.16 更多的Java源程序 1.17 例程:Debug第2章 Java的运行环境 2.0 简介 2.1 获得环境变量 2.2 系统属性 2.3 编写JDK版本相关的代码 2.4 编写操作系统相关的代码 2.5 使用扩展包或其他API包 2.6 解析命令行参数第3章 字符串 3.0 简介 3.1 利用substring()分解字符串 3.2 利用StringTokenizer分解字符串 3.3 连接字符串 3.4 处理单个字符 3.5 字符串的对齐 3.6 Unicode字符与String.的转换 3.7 颠倒字符串 3.8 扩展和压缩TAB符 3.9 控制字母大小写 3.10 缩排文档 3.11 输入非打印字符 3.12 删除字符串尾部的空格 3.13 解析逗号分隔的数据 3.14 例程:一个简单的文本格式化工具 3.15 例程:Soundex算法第4章 正则表达式的模式匹配 4.0 简介 4.1 正则表达式的语法 4.2 在Java中使用正则表达式:测试模式 4.3 查找匹配的文本 4.4 替换匹配的正文 4.5 打印匹配的所有字符串 4.6 打印含有模式的行 4.7 在正则表达式中控制大小写 4.8 匹配重音符或复合字符 4.9 匹配时的换行问题 4.10 例程:Apache日志文件解析 4.11 例程:数据挖掘 4.12 例程:完整的Grep第5章 数字 5.0 简介 5.1 检查字符串是否包含有效数字 5.2 数据类型的由大变小 5.3 数字与对象的互相转换 5.4 使用分数 5.5 确保浮点数的准确性 5.6 浮点数的比较 5.7 浮点数的舍入 5.8 数字的格式化 5.9 二进制、八进制、十进制以及十六进制之间的转换 5.10 整数序列 5.11 罗马数字 5.12 名词的复数形式 5.13 产生随机数 5.14 产生更好的随机数 5.15 三角函数的计算 5.16 取对数 5.17 矩阵乘法 5.18 复数 5.19 处理特大的数字 5.20 例程:TempConVerter 5.21 例程:数字回文(Number Palindromes)第6章 日期和时间 6.0 简介 6.1 查看当前日期 6.2 按照指定格式打印日期/时间 6.3 用其他历法表示日期 6.4 将YMDHMS转换为Calendar对象 6.5 将字符串转换为日期 6.6 将秒数转换为DMYHMS格式 6.7 日期的加减运算 6.8 计算日期之间的间隔 6.9 比较日期 6.10 第几日 6.11 日历页 6.12 测量流逝的时间 6.13 休眠 6.14 例程:提醒服务第7章 结构化数据 7.0 简介 7.1 数组 7.2 调整数组的长度 7.3 ArrayList类 7.4 Iterator(迭代器) 7.5 链表 7.6 使用:Hashtable和HashMap进行映射 7.7 Properties类和Preferences类 7.8 排序 7.9 避免频繁地排序 7.10 排除重复元素 7.11 搜索对象 7.12 将集合转换为数组 7.13 自定义Iterator 7.14 堆栈 7.15 多维结构 7.16 集合小结 7.17 例程:运行效率第8章 泛型、foreach循环和枚举的数据结构(JDK 1.5) 8.0 简介 8.1 使用泛型 8.2 使用“foreach”循环 8.3 使用泛型避免强制类型转换 8.4 使用自动装包和自动拆包进行转换 8.5 使用类型安全的枚举 8.6 例程:MediaInvoicer第9章 面向对象的技术 9.0 简介 9.1 打印对象用toString()方法格式化 9.2 覆盖equals方法 9.3 覆盖hashcode方法 9.4 Clone方法 9.5 Finalize方法 9.6 使用内部类 9.7 通过接口进行回调(Callback) 9.8 多态(Polymorphism)/抽象方法 9.9 传值 9.10 Singleton模式 9.11 自定义异常 9.12 例程:Plotter(绘图仪)第10章 输入和输出 10.0 简介 10.1 从标准输入设备读取数据 10.2 向标准输出设备写数据 10.3 JDK 1.5的Formatter类 10.4 扫描文件 10.5 JDK 1.5的Scanner类 10.6 按文件名打开文件 10.7 复制文件 10.8 把文件读入字符串 10.9 重定向标准流 10.10 复制流 10.11 读/写不同字符集的文本 10.12 行结束符 10.13 平台相关的文件编码 10.14 断行再续 10.15 读写二进制数据 10.16 定位(Seeking) 10.17 处理C程序写的数据流 10.18 存储和还原串行化对象 10.19 防止ClassCastExceptions异常 10.20 读写JAR或Zip文档 10.21 读写压缩文件 10.22 例程:将文本输出为PostScript格式第11章 目录和文件操作 11.0 简介 11.1 获取文件信息 11.2 创建文件 11.3 修改文件名 11.4 删除文件 11.5 创建临时文件 11.6 更改文件属性 11.7 列出目录内容 11.8 获取根目录 11.9 创建新目录 11.10 例程:Find第12章 串行和并行接口编程 12.0 简介 12.1 选择一个端口 12.2 打开串行端口 12.3 打开并行端口 12.4 解决端口冲突 12.5 基于端口读写数据:异步(Lock Step) 12.6 基于端口的读写数据:事件驱动 12.7 基于端口的读写数据:线程 12.8 例程:Penman绘图仪第13章 图形与声音 13.0 简介 13.1 绘制图形 13.2 测试图形组件 13.3 输出文本 13.4 使组件上的文本居中 13.5 阴影效果 13.6 绘制二维艺术字 13.7 文本字体 13.8 图像 13.9 播放声音文件 13.10 播放视频文件 13.11 Java的打印 13.12 例程:P10tterlAWT 13.13 例程:Grapher第14章 图形用户界面(GUI) 14.0 简介 14.1 GUI组件 14.2 窗体布局 14.3 带Tab的布局 14.4 事件处理:让按钮工作起来 14.5 使用匿名的内部类进行事件处理 14.6 通过“关闭窗体”结束程序 14.7 对话框 14.8 GuI异常 14.9 在窗体上打印数据 14.10 使用JSpinner’选择值 14.11 使用JFileChooser选择文件 14.12 选择颜色 14.13 使用HTML格式化JComponents 14.14 将主窗体居中 14.15 修改swing程序的外观感受(Look and Feel). 14.16 改进Mac OS x的GUI 14.17 例程:定制字体 14.18 例程:定制布局管理器第15章 国际化与本地化 15.0 简介 15.1 用118N资源创建按钮 15.2 列出有效区域 15.3 使用118N资源创建菜单 15.4 编写国际化的实用子程序 15.5 使用118N资源包创建对话框 15.6 创建资源包 15.7 从代码中提取字符串 15.8 使用指定的区域 15.9 设置默认的区域 15.10 格式化消息 15.11 例程:MenuIntl 15.12 例程:BusCard第16章 网络客户端 16.0 简介 16.1 访问服务器 16.2 查找并报告网络地址 16.3 处理网络错误 16.4 读写文本数据 16.5 读写二进制数据 16.6 读写串行化数据 ……第17章 Java服务器端:Socket 第18章 网络客户端(Ⅱ):Applet和Web客户端 第19章 JaVa与EmajI 第20章 数据库访问 第21章 XML 第22章 分布式Java:RMI 第23章 包和包装机制 第24章 JaVa线程 第25章 内省或“命名类的类”第26章 JaVa与其他语言的结合 后记
章节摘录
插图:第1章 起步走:编译、运行和调试Java程序1.2 采用带彩色突出显示的编辑器编辑和编译程序讨论比集成环境(IDE)要小,但比命令行工具要大,介于它们之间的工具是什么呢?答案是支持Java的文本编辑器。例如:TextPad(http://www.textpad.corn)、Visual Slick Edit以及其他低成本的窗口化编辑器(主要是基于windows的),它们内置了Java的特性,可以直接在编辑器中编译程序。TextPad可以识别许多文件类型,包括批处理文件和shell脚本、C、c++、Java、JSP、JavaScript等。对于每一种类型,其关键字、注释、字符串等都采用不同的颜色来标识,这样方便你在代码中发现错误。例如:注释标号不成对,只有一个“/*,缺少另一个*/*。当然,它不像集成环境那样,能比较深入地“理解”Java,它实际上主要还是依赖程序员的开发经验。TextPad包含编译和执行JaVa程序的命令,因此,你可以直接在窗口上输出结果,比在命令行上执行要方便多了。然而,除非程序终止,否则你无法看到命令的结果,也就不能把握GUI应用程序在创建窗体时所抛出的异常。尽管如此,TextPad不失为一个十分有用的工具。此外,其他的编辑器还包括:彩色的vim(unix编辑工具vi的增强版,适用于windows或Unix系统,参见http://www.vim.org);曾经流行的Emacs编辑器等。
后记
写作本书对我真是一段诚惶诚恐的经历。所花去的时间比我预计的和愿意承受的都要长得多。当然,一切还没有结束。尽管我、技术审核、编辑还有许多其他的有才能的人已尽全力,这么厚的一本书肯定还会有错误、疏漏以及讲述不清的地方。如果你碰到这些事情,请通过e-mail告知我们,本书的后续版本将会包含像你这样的读者所贡献的努力!有人说过,只有在你教过别人之后,你才能真正了解某事物。我发现对于教学来说这是至理名言,对于写作亦然。我常告诉学生,当Java还很年轻时,一个人只要刻苦学习就可能几乎了解Java的一切。但到了JDK 1.1横空出世的时候,这再也不可能了。到现在,任何人要说他们对Java全知全觉肯定会让测谎仪的铃声响彻云霄。而Java的容量还在不断增长。我们怎么样才能与之俱进呢?靠Java书?Java杂志?Java课程?会议?答案不一而足,但都应该有用。Sun的Java软件部门有一些活动应该给予关注:
编辑推荐
《Java经典实例(第2版)》对于Java开发人员而言是理想的“第二《Java经典实例(第2版)》”(也是理想的自学书籍),讲述API比一般书籍要详细,非常适合扩大Java应用的知识面。《Java经典实例(第2版)》的主题包括:编译和调试Java程序 泛型、foreach和枚举(1.5版)使用Ant开发网络客户端和服务器端将应用程序打包,以便部署Web编程、Set’Vlet和IJSP字符串和正则表达式 数据库访问格式化器和扫描器(1.5版)集成XML.JavajF[IMac OS x 远程方法调用(RMI)数组和其他数据集合内省并行和串行端口的编程开发图形化用户界面文件、目录和文件系统并发性(1.5版)
图书封面
图书标签Tags
无
评论、评分、阅读与下载