Skip to content

Files

Latest commit

c4e46db · Oct 12, 2021

History

History
153 lines (102 loc) · 8.92 KB

File metadata and controls

153 lines (102 loc) · 8.92 KB

零、序言

随着 Java7 的发布,添加了许多新特性,显著提高了开发人员创建和维护 Java 应用程序的能力。其中包括语言改进,如更好的异常处理技术,以及对 Java 核心库的添加,如新的线程机制。

这本食谱涵盖了这些新功能,使用了一系列的食谱。每个配方都针对一个或多个新功能,并提供使用这些功能的模板。这将使您更容易理解这些功能以及它们的使用时间和方式。提供了一步一步的说明,以指导读者了解配方,并随后解释生成的代码。

本书首先讨论了新的语言增强功能,然后是一系列章节,每个章节都涉及一个特定的领域,如文件和目录管理。假定读者熟悉 Java6 的特性。这本书不需要按顺序阅读,这使读者能够选择感兴趣的章节和食谱。但是,建议读者阅读第一章,因为其中发现的许多功能将在后续食谱中使用。如果配方中使用了其他新的 Java7 功能,则会提供相关配方的交叉引用。

这本书涵盖的内容

第 1 章、*Java 语言改进:*在本章中,我们将研究作为 Coin 项目一部分引入的各种语言改进。这些特性包括简单的改进,例如在文本中使用下划线,以及在 switch 语句中使用字符串。此外,还详细介绍了更重要的改进,如使用资源块进行尝试和引入菱形操作符。

第 2 章*使用路径定位文件和目录:*本章介绍路径类。它在本章和其他章节中使用,并且是 Java7 中许多与文件相关的新增内容的基础。

第 3 章、*获取文件和目录信息:*很多应用程序需要访问特定的文件和目录信息。这里介绍了如何访问此文件信息,包括访问基本文件属性、Posix 属性和文件的访问控制列表等信息。

第 4 章、*管理文件和目录:*本章介绍了管理文件和目录的基本机制,包括创建和删除文件等操作。还涉及临时文件的使用和符号链接的管理。

第 5 章,*管理文件系统:*这里介绍了一些有趣的主题,例如如何获取文件系统和文件存储信息,用于遍历文件结构的类,如何监视文件和目录事件,以及如何使用 ZIP 文件系统。

第 6 章介绍了 Java7 中的*流 IO:*NIO2。详细介绍了执行异步 IO 的新技术以及执行随机访问 IO 和使用安全目录流的新方法。

第 7 章、*图形用户界面改进:*Java 7 中增加了一些内容,以解决 GUI 界面的创建问题。现在可以创建具有不同形状和透明窗口的窗口。此外,还介绍了许多增强功能,例如使用 JLayer decorator,它提高了在窗口上覆盖图形的能力。

第 8 章、*处理事件:*在本章中,将研究处理各种应用程序事件的新方法。Java7 现在支持额外的鼠标按钮和精确的鼠标滚轮。控制窗口焦点的能力得到了改进,并且引入了二次循环来模拟模态对话框的行为。

第 9 章、*数据库、安全性和系统增强:*介绍了各种数据库改进,如引入新的 RowSetFactory 类,以及如何利用新的 SSL 支持。此外,还演示了其他系统改进,如对 MXBeans 的额外支持。

第 10 章、*并发处理:*增加了几个支持线程使用的新类,包括支持 fork/join 范式的类、phaser 模型、改进的出列类和传输队列类。解释了用于生成随机数的新 ThreadLocalRandom 类。

第 11 章、*零碎:*本章演示了许多其他 Java 7 改进,例如对周、年和货币的新支持。本章还包括对处理空引用的改进支持。

这本书你需要什么

本书所需的软件包括 Java 开发工具包(JDK)1.7 或更高版本。任何支持 Java7 的集成开发环境都可以用来创建和执行配方。本书中的示例是使用 NetBeans 7.0.1 开发的。

这本书是给谁的

本书旨在让熟悉 Java 的人了解 Java 7 中的新特性。

公约

在这本书中,你会发现许多不同类型的文本可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。

文本中的代码词如下所示:“我们可以通过使用 include指令包含其他上下文。”

代码块设置如下:

private void gameEngine(List<Entity> entities)
{
final Phaser phaser = new Phaser(1);
for (final Entity entity : entities)
{
final String member = entity.toString();
System.out.println(member + " joined the game");
phaser.register();
new Thread()
{
@Override
public void run()
{
System.out.println(member +
" waiting for the remaining participants");
phaser.arriveAndAwaitAdvance(); // wait for remaining entities
System.out.println(member + " starting run");
entity.run();
}
}.start();
}
phaser.arriveAndDeregister(); //Deregister and continue
System.out.println("Phaser continuing");
}

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

private void gameEngine(List<Entity> entities)
{
final Phaser phaser = new Phaser(1);
for (final Entity entity : entities)
{
final String member = entity.toString();
System.out.println(member + " joined the game");
phaser.register();
new Thread()
{
@Override
public void run()
{
System.out.println(member +
" waiting for the remaining participants");
phaser.arriveAndAwaitAdvance(); // wait for remaining entities
System.out.println(member + " starting run");
entity.run();
}
}.start();
}
phaser.arriveAndDeregister(); //Deregister and continue
System.out.println("Phaser continuing");
}

任何命令行输入或输出的编写方式如下:

Paths.get(new URI("file:///C:/home/docs/users.txt")), Charset.defaultCharset()))

新术语和重要词语以粗体显示。例如,您在屏幕上、菜单或对话框中看到的文字出现在文本中,如下所示:“单击下一步按钮将移动您到下一屏幕”。

重要的注释或警告会出现在此框中。

提示

提示和技巧如下所示。

读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢或可能不喜欢什么。读者反馈对于我们开发您真正从中获益最多的标题非常重要。

要向我们发送一般反馈,只需向<[feedback@packtpub.com](mailto:feedback@packtpub.com)>发送电子邮件,并通过邮件主题提及书名即可。

如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南,网址为www.packtpub.com/authors

客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以下载您在账户购买的所有 Packt 书籍的示例代码文件 http://www.packtpub.com 。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

勘误表

虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/support ,选择您的书籍,点击勘误表提交表链接,输入您勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上传到我们的网站,或添加到该标题勘误表部分的任何现有勘误表列表中。

盗版

在互联网上盗版版权材料是所有媒体的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现我们作品的任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。

请致电<[copyright@packtpub.com](mailto:copyright@packtpub.com)>与我们联系,并提供可疑盗版材料的链接。

我们感谢您在保护我们的作者方面的帮助,以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有疑问,请致电<[questions@packtpub.com](mailto:questions@packtpub.com)>与我们联系,我们将尽力解决。