# Java SE 8 程序员 I 考试

> 原文： [https://docs.oracle.com/javase/tutorial/extra/certification/javase-8-programmer1.html](https://docs.oracle.com/javase/tutorial/extra/certification/javase-8-programmer1.html)

此页面将 Java 教程中的部分映射到 Java SE 8 Programmer I 考试中涵盖的主题。此考试与 Oracle Certified Associate，Java SE 8 Programmer 证书相关联。本次考试涉及的主题是：

1.  [Java 基础知识](#basics)
2.  [使用 Java 数据类型](#dataTypes)
3.  [使用运算符和决策结构](#operators)
4.  [创建和使用数组](#arrays)
5.  [使用循环结构](#loopConstructs)
6.  [使用方法和封装](#encapsulation)
7.  [使用继承](#inheritance)
8.  [处理例外情况](#exceptions)
9.  [使用 Java API 中的选定类](#api)

**第 1 项：**定义变量的范围。

*   [变量](../../java/nutsandbolts/variables.html)

**第 2 项：**定义 Java 类的结构。

*   [仔细看看“Hello World！”申请](../../getStarted/application/index.html)
*   [课程](../../java/javaOO/classes.html)

**项目 3：**使用 main 方法创建可执行 Java 应用程序;从命令行运行 Java 程序;产生控制台输出。

*   [“Hello World！”用于 NetBeans IDE](../../getStarted/cupojava/netbeans.html)
*   [“Hello World！”适用于 Microsoft Windows](../../getStarted/cupojava/win32.html)
*   [“Hello World！”适用于 Solaris OS 和 Linux](../../getStarted/cupojava/unix.html)
*   [仔细看看“Hello World！”申请](../../getStarted/application/index.html)

**第 4 项：**导入其他 Java 包以使其在您的代码中可访问。

*   [创建和使用包](../../java/package/packages.html)
*   [使用包裹会员](../../java/package/usepkgs.html)

**第 5 项：**比较和对比 Java 的特性和组件，例如：平台独立性，面向对象，封装等。

*   [关于 Java 技术](../../getStarted/intro/definition.html)
*   [面向对象的编程概念](../../java/concepts/index.html)

**第 1 项：**声明并初始化变量（包括原始数据类型的转换）。

*   [变量](../../java/nutsandbolts/variables.html)
*   [初始化字段](../../java/javaOO/initial.html)

**第 2 项：**区分对象引用变量和原始变量。

*   [原始数据类型](../../java/nutsandbolts/datatypes.html)
*   [数字类](../../java/data/numberclasses.html)

**第 3 项：**知道如何读取或写入对象字段。

*   [继承](../../java/IandI/subclasses.html)
*   [声明成员变量](../../java/javaOO/variables.html)
*   [创建对象](../../java/javaOO/objectcreation.html)
*   [使用对象](../../java/javaOO/usingobject.html)

**第 4 项：**解释对象的生命周期（创建，“通过重新分配取消引用”和垃圾收集）。

*   [物件](../../java/javaOO/objects.html)
*   [创建对象](../../java/javaOO/objectcreation.html)
*   [使用对象](../../java/javaOO/usingobject.html)

**第 1 项：**使用 Java 运算符;使用括号覆盖运算符优先级。

*   [运算符](../../java/nutsandbolts/operators.html)
*   [赋值，算术和一元运算符](../../java/nutsandbolts/op1.html)
*   [平等，关系和条件运算符](../../java/nutsandbolts/op2.html)
*   [按位和位移运算符](../../java/nutsandbolts/op3.html)
*   [表达式，语句和块](../../java/nutsandbolts/expressions.html)

**第 2 项：**使用 `==` 和`等于（）`测试字符串与其他对象之间的相等性。

*   [对象作为超类](../../java/IandI/objectclass.html)

**项目 3：**创建并使用`如果`，`如果` - `否`和三元构造。

*   [if-then 和 if-then-else 语句](../../java/nutsandbolts/if.html)
*   [平等，关系和条件运算符](../../java/nutsandbolts/op2.html)

**第 4 项：**使用`开关`语句。

*   [开关声明](../../java/nutsandbolts/switch.html)

**第 1 项：**声明，实例化，初始化和使用一维数组。

*   [数组](../../java/nutsandbolts/arrays.html)

**第 2 项：**声明，实例化，初始化和使用多维数组。

*   [数组](../../java/nutsandbolts/arrays.html)

**第 1 项：**在循环时创建并使用`。`

*   [while 和 do-while 语句](../../java/nutsandbolts/while.html)

**第 2 项：**为循环创建并使用`，包括增强的 for 循环。`

*   [for Statement](../../java/nutsandbolts/for.html)

**第 3 项：**在循环时创建并使用`执行` - `。`

*   [while 和 do-while 语句](../../java/nutsandbolts/while.html)

**第 4 项：**比较循环结构。

*   [控制流程声明摘要](../../java/nutsandbolts/flowsummary.html)

**第 5 项：**使用 `break` 和`继续`。

*   [分支声明](../../java/nutsandbolts/branch.html)

**第 1 项：**使用参数和返回值创建方法，包括重载方法。

*   [从方法](../../java/javaOO/returnvalue.html)返回值
*   [定义方法](../../java/javaOO/methods.html)

**第 2 项：**将`静态`关键字应用于方法和字段。

*   [变量](../../java/nutsandbolts/variables.html)
*   [了解类成员](../../java/javaOO/classvars.html)
*   [默认方法](../../java/IandI/defaultmethods.html)

**第 3 项：**创建重载方法;区分默认构造函数和用户定义的构造函数。

*   [定义方法](../../java/javaOO/methods.html)
*   [为您的类提供构造函数](../../java/javaOO/constructors.html)

**第 4 项：**应用访问修饰符。

*   [控制对类成员的访问](../../java/javaOO/accesscontrol.html)

**第 5 项：**将封装原则应用于类。

*   [继承](../../java/IandI/subclasses.html)
*   [内部类示例](../../java/javaOO/innerclasses.html)
*   [嵌套类](../../java/javaOO/nested.html)

**项目 6：**确定将对象引用和原始值传递给更改值的方法时的效果。

*   [将信息传递给方法或构造函数](../../java/javaOO/arguments.html)

**第 1 项：**描述继承及其好处。

*   [继承](../../java/IandI/subclasses.html)
*   [覆盖和隐藏方法](../../java/IandI/override.html)

**第 2 项：**开发利用多态性的代码;开发覆盖方法的代码;区分引用的类型和对象的类型。

*   [多态性](../../java/IandI/polymorphism.html)
*   [创建对象](../../java/javaOO/objectcreation.html)
*   [使用对象](../../java/javaOO/usingobject.html)

**项目 3：**确定何时需要施法。

*   [继承](../../java/IandI/subclasses.html)

**第 4 项：**使用 `super` 和来访问对象和构造函数。

*   [使用关键字 super](../../java/IandI/super.html)
*   [使用此关键字](../../java/javaOO/thiskey.html)

**第 5 项：**使用抽象类和接口。

*   [摘要方法和类](../../java/IandI/abstract.html)
*   [定义接口](../../java/IandI/interfaceDef.html)
*   [实现接口](../../java/IandI/usinginterface.html)

**第 1 项：**区分已检查的异常， `RuntimeException` 和`错误`。

*   [捕获或指定要求](../../essential/exceptions/catchOrDeclare.html)

**第 2 项：**创建 `try-catch` 块并确定异常如何改变正常程序流程。

*   [捕获和处理异常](../../essential/exceptions/handling.html)
*   [`try`块](../../essential/exceptions/try.html)
*   [`catch`块](../../essential/exceptions/catch.html)

**第 3 项：**描述异常处理的优点。

*   [什么是例外？](../../essential/exceptions/definition.html)
*   [例外的优点](../../essential/exceptions/advantages.html)

**第 4 项：**创建并调用抛出异常的方法。

*   [捕捉异常](../../essential/io/fileOps.html#exception)

**第 5 项：**识别常见的异常类和类别（例如 NullPointerException，ArithmeticException，ArrayIndexOutOfBoundsException，ClassCastException）。

**第 1 项：**使用 `StringBuilder` 类及其方法处理数据。

*   [StringBuilder 类](../../java/data/buffers.html)
*   [字符和字符串摘要](../../java/data/stringsummary.html)

**第 2 项：**创建和操纵字符串。

*   [字符串](../../java/data/strings.html)
*   [在数字和字符串之间转换](../../java/data/converting.html)
*   [比较字符串和字符串部分](../../java/data/comparestrings.html)
*   [操纵字符串中的字符](../../java/data/manipstrings.html)

**第 3 项：**使用来自 `java.time.LocalDateTime` ， `java.time.LocalDate` ， `java.time.LocalTime []的类创建和操作日历数据 HTG7]， `java.time.format.DateTimeFormatter` ， `java.time.Period` 。`

*   [日期和时间类](../../datetime/iso/datetime.html)
*   [日期类](../../datetime/iso/date.html)
*   [解析和格式化](../../datetime/iso/format.html)
*   [期间和持续时间](../../datetime/iso/period.html)

**项目 4：**声明并使用给定类型的 `ArrayList` 。

*   [列表接口](../../collections/interfaces/list.html)
*   [列表实现](../../collections/implementations/list.html)

**第 5 项：**编写一个使用 Lambda Predicate 表达式的简单 Lambda 表达式。

*   [Lambda 表达式](../../java/javaOO/lambdaexpressions.html)
*   [流式操作](../../collections/streams/index.html)