描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787512387751
从lambda表达式、JavaFX 8,到网络编程和支持移动设备等方面,Java 8都有许多更新。本书包含了数百个经过实践验证的技巧,内容涵盖了广泛的Java主题,可帮助你快速进入编程状态。你可以从中学到一切有用的技术,包括调试、数据结构、GUI开发和函数编程。
本书的每个技巧既给出了代码部分,也给出了运行结果,还有对它们的讨论。你可以免费使用这些代码。如果你对Java基础知识比较熟悉,学习本书将使你进一步掌握语言方面的通用知识和Java 8 中主要API方面的特殊知识。
本书的主题包括:
· 用于编译、运行和调试的方法。
· 对文本的处理、比较和重新安排。
· 用于字符串匹配和模式匹配的正则表达式。
· 处理数字、日期和时间。
· 使用集合、数组和其他类型实现数据的结构化。
· 面向对象技术和函数编程技术。
· 目录和文件系统运算符。
· 使用图形、视频和音频。
· GUI开发,包括JavaFX和处理器。
· 客户端和服务器端的网络编程。
· 数据库访问,使用JPA、Hibernate和JDBC。
· 处理JSON和用于数据存储的XML。
· 多线程和并发机制。
前言
第1章 入门:编译、运行和调试Java 程序
引言
编译和运行Java 程序:JDK 方式
用带语法高亮显示的编辑器编辑和编译程序
使用IDE 编译、运行和测试程序
有效使用CLASSPATH
下载和使用代码示例
使用Ant 工具自动编译
使用Apache Maven 自动设置依赖关系、编译、测试和部署
使用Gradle 自动设置依赖关系、编译、测试和部署
处理过期警告
没有#ifdef 的条件编译
使用断言机制维护程序的正确性
使用JDB 调试
用单元测试避免调试
用持续集成维护代码
获取可读回溯
更多的Java 源代码:程序、框架和库
第2章 与运行环境交互
引言
获得环境变量
从系统属性获得信息
了解当前的JDK 版本
编写操作系统相关的代码
使用扩展包或其他API 包
解析命令行参数
第3章 字符串
引言
用Substring 分解字符串
将字符串分解成词
用StringBuilder 连接字符串
处理单个字符串
字符串对齐
Unicode 字符和String 之间的转换
按单词或字符颠倒字符串
扩展和压缩Tab
控制字母大小写
缩排文本文档
输入非打印字符
删除字符串的尾部空格
解析用逗号分隔的数据
程序:一个简单的文本格式化工具
程序:Soundex 算法
第4章 正则表达式的模式匹配
引言
正则表达式语法
在Java 中使用正则表达式:测试模式
找到匹配的文本
替换匹配的文本
打印匹配的所有字符串
打印包含一个模式的行
在正则表达式中控制大小写
匹配“重音符”或复合字符
在文本中匹配换行符
程序:Apache 日志文件解析
程序:数据挖掘
程序:完整的Grep
第5章 数字
引言
检查字符串是否是有效数字
用小数据类型储存大数据类型的数字
数字与对象的相互转换
直接使用分数而不用浮点数
保证浮点数的准确
比较浮点数
舍入浮点数
格式化数字
二进制、八进制、十进制和十六进制之间的转换
对整数序列的操作
使用罗马数字
复数的正确格式化
生成随机数
计算三角函数
取对数
矩阵乘法
使用复数
处理非常大的数字
程序:TempConverter
程序:数字回文
第6章 日期和时间——新的API
引言
查看当天日日期
日期和时间的格式化
日期/时间、YMDHMS 和纪元秒(Epoch Seconds)之间的转换
将字符串解析为日期
两个日期之间的差
日期或日历的加减
与传统日期和日历类的接口
第7章 结构化数据
引言
使用数组
调整数组长度
集合框架
动态数组列表
使用泛型集合
使用泛型避免强制类型转换
迭代器的使用方式
使用Set 避免元素重复存储
使用迭代器或枚举
链表结构
使用Hashtable和HashMap 进行映射
Properties 类和Preferences 类
对集合排序
避免频繁排序
在集合中查找对象
将集合转换为数组
自定义迭代器
堆栈
多维结构
程序:运行时间比较
第8章 面向对象技术
引言
使用toString() 格式化对象并输出
覆盖equals() 和hashCode() 方法
使用关闭钩子清理程序
使用内部类
通过接口提供回调
多态性/抽象方法
传递数值
使用类型安全的枚举
Singleton 模式
自定义异常
使用依赖注入
程序:绘图仪
第9章 函数式编程技术:函数接口、流、并行集合
引言
使用lambda/Closure 替代内部类
使用lambda 预定义接口
使用流
使用并行流与集合提高吞吐量
创建自己的函数式接口
函数引用
Java Mixins:方法混合
第10章 输入与输出
引言
从标准输入设备读取数据
从控制台或控制终端读取数据,隐藏读取密码
向标准输出或标准错误流写数据
使用Formatter 和printf 输出
使用Stream Tokenizer 的扫描输入
使用Scanner 类扫描输入
使用语法结构扫描输入
按文件名打开文件
复制文件
把文件读入一个字符串
重新分配标准流
复制一个流
读/写不同的字符集
行结束符
平台相关的文件编码
阅读“连续”行
读/写二进制数据
在文件中定位
处理C程序写的数据流
存储和还原Java 对象
防止ClassCastExceptions 异常
读写JRA 或Zip 文档
利用get Resource() 和getResourceAsStream() 获得文件
读写压缩文件
了解串行和并行端口的通信API
将用户数据保存到磁盘
程序:将文本输出为PostScript 格式
第11 章 目录和文件系统操作
引言
获取文件信息
创建一个文件
重命名一个文件
删除一个文件
创建临时文件
改变文件属性
列出目录内容
获取根目录
创建新的目录
使用路径而不是文件
使用FileWatcher 服务得到文件变化的通知
程序:Find
第12 章 媒体:图形、音频、视频
引言
使用Graphics 对象画图
无需编写主函数显示图形组件
绘制文本
在组件中央绘制文本
绘制阴影
绘制2D(二维)文本
使用应用程序字体绘制文本
绘制图像396
使用javaximageio 读写图像
播放音频/语音文件
播放视频文件
在Java 中打印
程序:PlotterAWT
程序:Grapher
第13章 网络客户端
引言
访问服务器
查找和报告网络地址
处理网络错误
读写文本数据
读写二进制数据
读写串行化数据
UDP 数据报
程序:TFTP 的UDP 客户端
URI 、URL,还是URN?
轻量级Web 服务客户端
SOAP Web 服务客户端
程序:Telnet 客户端
程序:聊天客户端
程序:简单的HTTP 链接检查器
第14 章 图形用户界面
引言
显示GUI(图形用户界面)组件
在事件调度线程上运行GUI
设计一个窗口布局
选项卡视图
事件处理:使按钮工作
使用匿名内部类进行事件处理
使用Lambdas 的事件处理
用“窗口关闭”来终止程序
对话框
捕捉和格式化GUI 异常
在窗口上打印
使用JSpinner 选择一个值
用JFileChoose 选择一个文件
选择一种颜色
用HTML 格式化jcomponents
将主窗口居中显示
改变Swing 程序的外观和感觉
改进MAC OS X 下的Swing GUI
使用JavaFX 构建GUI 应用程序
程序:定制字体选择器
程序:定制AWT/Swing 布局管理器
第15 章 国际化和本地化
引言
用I18N 资源创建一个按钮
列出可用的语言环境
使用I18N 资源创建菜单
编写国际化的方便子程序
使用I18N 资源创建一个对话框
创建一个资源包
从代码中提取字符串
使用特定的语言环境
设置默认语言环境
使用MessageFormat 格式化消息
程序:MenuIntl
程序:BusCard
第16 章 Java 服务器端
引言
打开服务器套接字
返回一个响应(字符串或二进制)
通过网络连接返回对象信息
处理多个客户端
为HTTP 协议服务
用SSL 和JSSE 保护Web 服务器
网络日志
使用SLF4J 进行网络日志记录
使用log4j 进行网络日志记录
使用javautillogging 进行网络日志记录
查找网络接口
程序:一个Java 聊天服务器
第17 章 Java 和电子邮箱
引言
发送电子邮件:浏览器版本
发送电子邮件:真实的
启用服务器程序的邮件发送
发送MIME 邮件
提供邮件设置
阅读电子邮件
程序:MailReaderBean
程序:MailClient
第18 章 数据库访问
引言
用JPA 或Hibernate 轻松访问数据库
JDBC 设置和连接
连接JDBC 数据库
发送一个JDBC 查询并获取结果
使用JDBC 准备好的语句
在JDBC 中使用存储过程
使用ResultSet 修改数据
在RowSet 中存储
使用SQL 更新数据
查找JDBC 元数据
程序:SQLRunner
第19 章 处理JSON 数据
引言
直接生成JSON
使用Jackson 解析和编写JSON
用orgjson 解析和编写JSON
第20 章 处理XML
引言
用JAXB 在对象与XML 之间转换
使用序列化实现对象与XML 之间的转换
通过XSLT 转换XML
用SAX 解析XML
用DOM 解析XML
用XPath 查找XML 元素
用Schema 或DTD 验证结构
用DOM 和XML 转换器生成自己的XML
程序xml2mif
第21 章 包和打
引言
创建一个封装包
用Javadoc 为类写文档
超出Javadoc:注解/元数据
用jar 归档
从一个JAR 运行一个程序
将一个类作为JavaBean
将Bean 放入一个JAR 中
打包一个Servlet 到WAR 文件
编写一次,随处安装
编写一次,在Mac OS X 上进行安装
Java Web Start
签名你的JAR 文件
第22 章 Java 线程
引言
在不同线程中运行代码696
用动画显示运动图像700
停止一个线程704
交会和超时707
用synchronized 关键字实现线程同步708
使用锁简化同步
用wait() 和notifyAll() 同步线程
使用队列接口简化生产者/消费者模式
用Fork/Join 优化并行处理
在编辑器的后台保存
程序:多线程网络服务器
使用Concurrency Utilities 简化服务器
第23 章 反射或“命名类的类”
引言
获取类描述符
查找并使用方法和域
通过反射访问私有的方法和域
动态加载并实例化一个类
通过一个ClassLoader 从头开始构造一个类
性能计时
输出类的信息
显示包中包含的类清单
使用和定义注解
通过注解找到类似插件的类
程序:CrossRef
程序:AppletViewer
第24 章 Java 和其他语言的结合
引言
在Java 中运行外部程序
运行一个程序并捕捉其输出
通过javaxscript 调用其他语言
启动自己的脚本引擎
Java 和Perl 的结合
通过本机代码调用其他语言
从本机代码中调用Java
后记
附录A Java 的过去与现在
业界评论
“O’Reilly Radar博客有口皆碑。” ——Wired
“O’Reilly凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业务。” ——Business 2.0
“O’Reilly Conference是聚集关键思想领袖的*典范。” ——CRN
“一本O’Reilly的书就代表一个有用、有前途、需要学习的主题。” ——Irish Times
“Tim是位特立独行的商人,他不光放眼于长远、广阔的视野并且切实地按照 Yogi Berra的建议去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顾 过去Tim似乎每一次都选择了小路,而且有几次都是一闪即逝的机会,尽管大路也 不错。” ——Linux Journal
评论
还没有评论。