提交 e027f11f 编写于 作者: W wizardforcel

2021-10-12 08:48:32

上级 2b0fda19
# 序言
无论您是在追求 Java 认证,还是想充实自己的知识并在使用 Java 方面获得更多信心,您都会发现这本书很有用。本书采用不同的方法为认证做好准备。它旨在为您提供考试主题的介绍,并为 Java 的使用和 Java 应用程序的开发提供更多的见解。通过提供更广泛的覆盖范围,它超越了直接的认证重点,提供了更全面的语言覆盖范围。
对于那些追求 Java 认证的人,本书围绕 Java 的主要方面进行组织,并讨论了 JavaSE7 程序员 I(1Z0-803)考试所涵盖的认证主题。每章都涉及特定的认证主题,尽管有些主题包含在不止一章中。在每章的末尾都有认证问题,这些问题将让你了解考试中可能遇到的问题的性质。本书的目的不是提供一组详尽的问题,而是讨论那些重要的 Java 概念,这些概念将帮助您回答认证问题。
对于那些想提高 Java 知识的人来说,本书提供了一些您以前可能从未见过的 Java 知识。特别是,这些图表将有希望增强和巩固您对 Java 如何工作的理解,特别是那些描述程序堆栈和堆的使用的图。本书中提供了一些示例,这些示例解决了在开发 Java 应用程序时发现的许多常见陷阱。
不管你读这本书的原因是什么,我希望你觉得这本书是有价值的和充实的。
# 这本书涵盖的内容
[第 1 章](01.html "Chapter 1. Getting Started with Java")*Java 入门*概述了一个简单的 Java 应用程序,介绍了 Java 的主要方面。`customer`类的创建,以及 getter 和 setter 方法的使用都进行了说明。还讨论了开发过程、支持的 Java 应用程序类型、Java 中的文档过程以及注释的使用,这些都大大增强了 Java 的表达能力。
[第 2 章](02.html "Chapter 2. Java Data Types and Their Usage")*Java 数据类型及其用法*介绍了 Java 中可用的原始数据类型及其相应的运算符。图表用于解释程序堆栈和堆如何相互关联,以及它们如何影响变量的作用域和生存期。此外,还说明了`String``StringBuilder`类的使用,并解释了类和对象之间的区别。
[第 3 章](03.html "Chapter 3. Decision Constructs")*决策构造*重点介绍 Java 中用于决策的构造,包括 if 和 switch 语句。由于这些构造依赖于逻辑表达式,因此涵盖了这些类型的表达式。本文演示了 Java7 中基于字符串的 switch 语句的使用。正确使用决策构造是通过理解并避免各种陷阱来实现的,例如无法使用块语句以及在比较中使用浮点数时可能出现的大量问题。
[第 4 章](04.html "Chapter 4. Using Arrays and Collections")*使用数组和集合*重点介绍数组的使用,以及`Arrays``ArrayList`类。单数组和多维数组都有说明。引入了`Arrays`类,因为它拥有许多重要的数组操作方法,如填充和排序数组。`ArrayList`类很重要,因为它为许多问题提供了比数组更灵活的容器。
[第 5 章](05.html "Chapter 5. Looping Constructs")*循环构造*通过 while 和 for 循环等构造在 Java 中演示了迭代的概念。这些都包含在使用它们时可能出现的常见错误中。介绍了 for-each 语句和迭代器的使用,以及无限循环和 break-and-continue 语句的覆盖范围。
[第 6 章](06.html "Chapter 6. Classes, Constructors, and Methods")*类、构造函数和方法*涉及对象的创建和使用,并使用堆栈/堆来解释该过程。讨论了重要的 Java 初始化序列。详细介绍了构造函数和方法的重载,以及签名、实例/静态类成员和不可变对象的概念。数据封装在本章中进行了说明。
[第 7 章](07.html "Chapter 7. Inheritance and Polymorphism")*遗传和多态性*涵盖了遗传和多态性的关键主题,并加强了对构造器和方法的讨论。使用重写时,签名的使用再次变得重要。`super`关键字的威力与构造函数和方法有关。重新检查范围,并探讨最终类和抽象类的概念。还介绍了常在的`Object`类。
[第 8 章](08.html "Chapter 8. Handling Exceptions in an Application")*处理应用程序*中的异常,涵盖了异常处理,包括使用新的 try with resource 块和 catch 块中的`|`操作符。提供了几个处理异常处理的指南和示例,以帮助读者避免在使用过程中出现常见错误。
[第 9 章](09.html "Chapter 9. The Java Application")*Java 应用程序*检查了包在 Java 应用程序中的使用。这包括对包和导入语句(包括静态导入语句)使用的讨论。还讨论了如何使用资源包来支持需要面向国际社会的应用程序,以及如何使用 JDBC 连接和使用数据库。
# 这本书你需要什么
要完成本书中的示例,您需要访问 Java7SE。可从[下载 http://www.oracle.com/technetwork/java/javase/downloads/index.html](http://www.oracle.com/technetwork/java/javase/downloads/index.html) 。读者可能更喜欢使用支持 Java 7 的**集成开发环境****IDE**),如 NetBeans、Eclipse 或类似环境。
# 这本书是给谁的
本书适用于准备参加 JavaSE7 程序员 I(1Z0-803)考试的人和/或希望拓宽 Java 知识面的人。
# 公约
在这本书中,你会发现许多不同类型的文本可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。
文本中的码字如下所示:“例如,`person`对象和`square`对象都可以有`draw`方法。”
代码块设置如下:
```java
public class Application {
public static void main(String[] args) {
// Body of method
}
}
```
任何命令行输入或输出的编写方式如下:
```java
set path= C:\Program Files\Java\jdk1.7.0_02\bin;%path%
```
### 注
重要的注释或警告会出现在此框中。
### 提示
提示和技巧如下所示。
# 读者反馈
我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢或可能不喜欢什么。读者反馈对于我们开发您真正从中获益最多的标题非常重要。
要向我们发送一般反馈,只需向`<[feedback@packtpub.com](mailto:feedback@packtpub.com)>`发送电子邮件,并通过邮件主题提及书名即可。
如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南,网址为[www.packtpub.com/authors](http://www.packtpub.com/authors)
# 客户支持
既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。
## 下载示例代码
您可以下载您在[账户购买的所有 Packt 书籍的示例代码文件 http://www.PacktPub.com](http://www.PacktPub.com) 。如果您在其他地方购买了本书,您可以访问[http://www.PacktPub.com/support](http://www.PacktPub.com/support) 并注册,将文件直接通过电子邮件发送给您。
## 勘误表
虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问[进行报告 http://www.packtpub.com/support](http://www.packtpub.com/support) ,选择您的书籍,点击**勘误表****提交****表单**链接,输入您勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上传到我们的网站上,或添加到该标题勘误表部分的任何现有勘误表列表中。通过从[中选择您的标题,可以查看任何现有勘误表 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)>`与我们联系,我们将尽力解决。
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
# 附录 A.测试你的知识-答案
# 第 1 章:Java 入门
<colgroup><col style="text-align: left"> <col style="text-align: left"> <col style="text-align: left"></colgroup>
|
问题编号。
|
答复
|
解释
|
| --- | --- | --- |
| 1. | A. | 将显示第二个命令行参数。 |
| 2. | a、 b 和 d | 选项 c 不正确,因为您无法为整型变量指定双精度值。 |
# 第二章:Java 数据类型及其使用
<colgroup><col style="text-align: left"> <col style="text-align: left"> <col style="text-align: left"></colgroup>
|
问题编号。
|
答复
|
解释
|
| --- | --- | --- |
| 1. | C | 不能从静态方法访问实例变量。 |
| 2. | c 和 e | 选项 a 不正确,因为单引号用于字符数据。选项 b 要求后缀为`f`,如`3.14159f`所示。一个字节只接受从-128 到+127 的值。 |
| 3. | b 和 d | 选项 a 不正确,因为实例变量需要与对象一起使用。选项 c 不正确,因为实例变量不能与类名一起使用。 |
| 4. | a、 b 和 d | 没有`StringBuilder``toInteger`方法。 |
| 5. | B | `lastIndexOf`方法采用单个参数 char。`charAt`方法返回位置处的字母。`indexOf`的最后一次使用不同时使用字符串和字符参数。 |
| 6. | C | 选项 a 仅比较对象的相等性。选项 b 不正确,因为选项 d 中没有类似于`matchCase`的方法,`equals`方法使用两个字符串中不同的大小写。 |
# 第三章:决策构造
<colgroup><col style="text-align: left"> <col style="text-align: left"> <col style="text-align: left"></colgroup>
|
问题编号。
|
答复
|
解释
|
| --- | --- | --- |
| 1. | B | `%`运算符是模运算符,返回余数。 |
| 2. | a 和 c | 选项 b 的计算结果为-24。选项 d 的计算结果为 11。 |
| 3. | B | 位序列 0001000 通过零符号填充向右移动 3 个位置。 |
| 4. | a 和 c | 选项 b 导致`i``j`之间的比较,后者返回一个布尔值。此值不能与整数`k`进行比较。选项 d 要求在表达式`>k`之前有一个操作数。 |
| 5. | B | 默认情况下,可以将其放置在交换机内的任何位置。由于除第一种情况外,所有情况都缺少 break 语句,所以最后三种情况中的每一种都会出现流程。虽然它不常见,但常量可用于 switch 语句。 |
# 第四章:使用数组和集合
<colgroup><col style="text-align: left"> <col style="text-align: left"> <col style="text-align: left"></colgroup>
|
问题编号。
|
答复
|
解释
|
| --- | --- | --- |
| 1. | a 和 d | 数组声明中的元素数不在声明中使用。但是,我们可以使用以下方法:
```java
int arr[] = new int[5];
```
|
| 2. | B | 必须至少指定多维数组的第一个维度。 |
| 3. | a 和 c | 如果找到对象,`contains`方法将返回 true,`indexOf`获取对象引用,如果找到,则返回对象的索引,否则返回-1。`indexOf`方法不接受整数参数,并且 hasObject 方法不存在。 |
# 第五章:循环构造
<colgroup><col style="text-align: left"> <col style="text-align: left"> <col style="text-align: left"></colgroup>
|
问题编号。
|
答复
|
解释
|
| --- | --- | --- |
| 1. | a 和 d | 其他选项将不起作用,因为表达式的计算结果不是布尔值。 |
| 2. | b、 c 和 d | 不能在 for-each 语句中使用`[]`。 |
| 3. | a 和 b | 选项 c 需要在表达式`i < 5`周围加括号。如果在`do``while`关键字之间使用了多条语句,则选项 d 需要一条 block 语句。 |
| 4. | a、 b、c 和 d | 它们都是等价的。 |
| 5. | A. | continue 语句跳过`j`的值`3`。 |
# 第六章:类、构造函数和方法
<colgroup><col style="text-align: left"> <col style="text-align: left"> <col style="text-align: left"></colgroup>
|
问题编号。
|
答复
|
解释
|
| --- | --- | --- |
| 1. | a、 c 和 d | 选项 b 无法正确初始化阵列。 |
| 2. | C | 不能从静态方法访问实例方法。 |
| 3. | A. | 重载方法时不考虑返回值。 |
| 4. | c 和 d | 最后一行是一个与构造函数同名的方法。由于定义了构造函数但没有默认构造函数,因此该类没有默认构造函数。 |
| 5. | a 和 b | 声明类时只能使用`private``public`关键字,`private`关键字只能用于内部类。 |
| 6. | C | 因为类在同一个包中,除了私有方法之外,所有方法都是可见的。 |
| 7. | D | main 中的`i`变量没有修改,因为它是通过值传递的。当字符串通过引用传递时,局部变量`s`在第三种方法中被修改,而不是在`main`方法中被修改。 |
# 第七章:遗传与多态
<colgroup><col style="text-align: left"> <col style="text-align: left"> <col style="text-align: left"></colgroup>
|
问题编号。
|
答复
|
解释
|
| --- | --- | --- |
| 1. | a 和 d | 这导致`ClassC`成为`ClassA`的“孙子”。 |
| 2. | a 和 d | 重载只发生在同一个类中。不需要有基类。通用实现的接口也适用于多态行为。 |
| 3. | D | 其他方法不存在。 |
| 4. | B | 其他将生成语法错误。 |
| 5. | C | 第一个答案仅用作构造函数的第一个语句。第二个答案生成语法错误。第四个选项导致无限递归。 |
| 6. | A. | 抽象类不必有抽象方法,并且可以扩展其他类,无论它们是否抽象。找到实现接口的抽象类是很常见的。 |
# 第 8 章:处理应用程序中的异常
<colgroup><col style="text-align: left"> <col style="text-align: left"> <col style="text-align: left"></colgroup>
|
问题编号。
|
答复
|
解释
|
| --- | --- | --- |
| 1. | c 和 d | 选中的异常是那些扩展了`Exception`类而不是`RuntimeException`类的类。 |
| 2. | b 和 c | 应该首先捕获派生的 most 类。同一层次结构级别上的类的顺序并不重要。 |
| 3. | D | 应处理已检查的异常。它们可以使用 try-catch 块处理,也可以重新抛出到调用堆栈中更适合处理异常的另一个方法。 |
| 4. | a 和 d | 我们通常可以处理已检查的异常,应该使用它们。 |
| 5. | a 和 d | `DivisionByZeroException`不存在。此处不执行任何文件操作。 |
# 第 9 章:Java 应用
<colgroup><col style="text-align: left"> <col style="text-align: left"> <col style="text-align: left"></colgroup>
|
问题编号。
|
答复
|
解释
|
| --- | --- | --- |
| 1. | a 和 c | 包声明必须位于任何其他代码之前。但是,注释可能出现在代码中的任何位置。 |
| 2. | C | 将返回基本资源包中的字符串(如果存在)。 |
| 3. | C | 这个例外不存在。 |
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册