Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
此页面将 Java 教程中的部分映射到升级到 Java SE 8 OCP(Oracle 认证专业人员)(Java SE 6 和所有先前版本)和升级 Java SE 7 到 Java SE 8 OCP 考试中涵盖的主题。这些考试与 Oracle Certified Professional,Java SE 8 Programmer 证书相关联。
本次考试涉及的主题是:
Item1:开发相关代码,在 switch 语句中使用 String 对象,二进制字面量和数字字面量,包括字面量中的下划线
Item2:开发使用 try-with-resources 语句的代码,包括使用实现 AutoCloseable 接口的类
Item3:开发在单个 catch 块中处理多个 Exception 类型的代码
Item4:使用接口的静态和默认方法,包括默认方法的继承规则
Item1:使用 java.util.concurrent 包中的类,包括 CyclicBarrier 和 CopyOnWriteArrayList,重点是与传统 java.util 集合相比的优点
Item2:使用 java.util.concurrent.locks 和 java.util.concurrent.atomic 包中的 Lock,ReadWriteLock 和 ReentrantLock 类支持单变量的无锁线程安全编程
Item3:使用 Executor,ExecutorService,Executors,Callable 和 Future 来使用线程池执行任务
Item4:使用并行 Fork/Join Framework
Item1:描述本地化应用程序和开发使用 Locale 对象定义,读取和设置语言环境的代码的优点
Item2:为语言环境构建资源包并从应用程序调用资源包
Item3:使用 LocalDate,LocalTime,LocalDateTime,Instant,Period 和 Duration 创建和管理基于日期和时间的事件,包括单个对象中日期和时间的组合
Item4:使用 NumberFormat 和 DateFormat 类格式化本地化的日期,数字和货币值,包括数字和日期格式模式
Item5:处理跨时区的日期和时间,并管理夏令时产生的变化
Item1:使用 java.nio.Path 类在文件和目录路径上操作
Item2:使用 java.nio.Files 类检查,删除,复制或移动文件或目录
Item3:使用 DirectoryStream 和 FileVisitor 接口递归访问目录树
Item4:使用 PathMatcher 接口查找文件,并使用 Java SE 8 I/O 改进,包括 Files.find,Files.walk 和 Files.lines methods
Item5:使用 WatchService 接口观察目录中的更改
Lambda Expressions 和 Aggregate Operations 部分涵盖以下某些项目:
Item1:定义和编写功能接口并描述 java.util.function 包的接口
Item2:描述一个 lambda 表达式;重构使用匿名内部类来的代码为使用 lambda 表达式;描述类型推断和目标类型
Item3:开发使用 java.util.function 包中包含的内置接口的代码,例如 Function,Consumer,Supplier,UnaryOperator,Predicate 和 Optional API,包括接口的基本和二元变体
Item4:开发使用方法引用的代码,包括将 lambda 表达式重构为方法引用
Lambda Expressions 和 Aggregate Operations 部分涵盖以下某些项目:
Item1:开发使用钻石操作符和泛型声明的代码
Item2:开发使用 lambda 表达式迭代集合,过滤集合,排序集合的代码
Item3:使用方法搜索数据,例如 findFirst,findAny,anyMatch,allMatch 和 noneMatch
Item4:使用 count,max,min,average 和 sum 方法在 Java 流上计算并使用 collect 方法和 Collector 类将结果保存到集合中,包括 averagingDouble,groupingBy,joining 和 partitioningBy 方法
Item5:开发使用 Java SE 8 集合改进的代码,包括 Collection.removeIf,List.replaceAll,Map.computeIfAbsent 和 Map.computeIfPresent 方法
Item6:开发在 Java 流上使用 merge,flatMap 和 map 方法的代码
Lambda Expressions 和 Aggregate Operations 部分涵盖以下某些项目:
Item1:描述 Stream 接口和管道;使用 Arrays.stream 和 IntStream.range 方法创建流;识别懒惰的 lambda 操作
Item2:开发使用并行流的代码,包括流中的分解操作和缩减操作
本次考试涉及的主题是:
Item1:描述和开发使用 Java 内部类的代码,包括嵌套类,静态类,局部类和匿名类
Item2:描述和编写功能接口
Lambda 表达式Item3:描述一个 lambda 表达式;重构使用匿名内部类来的代码为使用 lambda 表达式;描述类型推断和目标类型
Lambda 表达式Lambda Expressions 和 Aggregate Operations 部分涵盖以下某些项目:
Item1:描述 java.util.function 包的接口
Item2:开发使用 Function 接口的代码
Item3:开发使用 Consumer 接口的代码
Item4:开发使用 Supplier 接口的代码
Item5:开发使用 UnaryOperator 接口的代码
Item6:开发使用 Predicate 接口的代码
Item7:开发使用 java.util.function 包的基本接口的基本和二元变体的代码
Item8:开发使用方法引用的代码,包括将 lambda 表达式重构为方法引用
Lambda Expressions 和 Aggregate Operations 部分涵盖以下某些项目:
Item1:使用 forEach()方法和方法链开发迭代集合的代码
Item2:描述 Stream 接口和管道
Item3:使用 lambda 表达式过滤集合
Item4:识别流中的惰性操作
Lambda Expressions 和 Aggregate Operations 部分涵盖以下某些项目:
Item1:开发代码以使用 map()方法从对象中提取数据
Item2:使用 findFirst(),findAny(),anyMatch(),allMatch()和 noneMatch()等方法搜索数据
Item3:描述 Optional 类的独特特征
Item4:使用 Java Stream 方法执行计算,例如 count(),max(),min(),average()和 sum()
Item5:使用 lambda 表达式对集合进行排序
Item6:开发使用 Stream.collect()方法和 Collectors 类方法的代码,例如 averagingDouble(),groupingBy(),joined()和 partitioningBy()
Item1:开发使用并行流的代码
并行Item2:实现流的分解和缩减
缩减Item1:开发使用 Java SE 8 集合改进的代码,包括 Collection.removeIf,List.replaceAll,Map.computeIfAbsent 和 Map.computeIfPresent 方法
Item2:开发使用 Java SE 8 I/O 改进的代码,包括 Files.find,Files.walk 和 Files.lines 方法
Item3:在 Stream API 中使用 flatMap()方法
Item4:使用 Arrays.stream()和 IntStream.range()方法开发创建流的代码
Item1:向接口添加静态方法
静态方法Item2:定义并使用接口的默认方法,并描述默认方法的继承规则
默认方法覆盖和隐藏方法Item1:通过使用 LocalDate,LocalTime,LocalDateTime,Instant,Period 和 Duration,创建和管理基于日期和时间的事件,包括单个对象中日期和时间的组合
Item2:处理跨时区的日期和时间,并管理夏令时产生的更改,包括格式化日期和时间值
Item3:使用 Instant,Period,Duration 和 TemporalUnit 定义,创建和管理基于日期和时间的事件