Java SE 8 升级考试
此页面将 Java 教程中的部分 Map 到升级到 Java SE 8 OCP(Oracle 认证 maven)(Java SE 6 和所有以前的版本)以及将 Java SE 7 升级到 Java SE 8 OCP 考试中涉及的主题。这些考试与 Oracle 认证 mavenJava SE 8 程序员证书相关联。
升级到 Java SE 8 OCP(Java SE 6 和所有以前的版本)
该考试涵盖的主题是:
第 1 节:语言增强
项目 1: 开发使用switch
语句中的String
对象,二进制 Literals 和数字 Literals(包括 Literals 中的下划线)的代码
项目 2: 开发使用try
-with-resources 语句的代码,包括使用实现AutoCloseable
interface的类
项目 3: 开发可在单个catch
块中处理多种Exception
类型的代码
项目 4: 使用interface的静态和默认方法(包括继承规则)作为默认方法
第 2 节:并发
项目 1: 使用java\.util\.concurrent
包中的类,包括CyclicBarrier
和CopyOnWriteArrayList
,着重于与传统java\.util
集合相比的优势和差异
项目 2: 使用java\.util\.concurrent\.locks
和java\.util\.concurrent\.atomic
包中的Lock
,ReadWriteLock
和ReentrantLock
类来支持对单个变量进行无锁线程安全编程
项目 3: 使用Executor
,ExecutorService
,Executors
,Callable
和Future
使用线程池执行任务
项目 4: 使用并行的 Fork/Join 框架
第 3 节:本地化
项目 1: 描述本地化应用程序和开发使用Locale
对象定义,读取和设置语言环境的代码的优点
项目 2: 为语言环境构建资源束并从应用程序调用资源束
项目 3: 通过使用LocalDate
,LocalTime
,LocalDateTime
,Instant
,Period
和Duration
创建和 管理 基于日期和时间的事件,包括单个对象中日期和时间的组合
项目 4: 格式化日期,数字和货币值以使用NumberFormat
和DateFormat
类进行本地化,包括数字和日期格式 Pattern
项目 5: 处理跨timezone的日期和时间,并 管理 夏令时产生的更改
第 4 节:Java 文件 I/O(NIO.2)
项目 1: 使用java\.nio\.Path
类在文件和目录路径上进行操作
项目 2: 使用java\.nio\.Files
类检查,删除,复制或移动文件或目录
项目 3: 使用DirectoryStream
和FileVisitor
interface递归访问目录树
项目 4: 使用 PathMatcher interface查找文件,并使用 Java SE 8 I/O 改进,包括Files\.find
,Files\.walk
和Files\.lines methods
项目 5: 使用WatchService
interface观察目录中的更改
第 5 节:Lambda
Lambda Expressions和Aggregate Operations部分涉及以下一些项目:
项目 1: 定义和编写功能interface并描述java\.util\.function
包的interface
项目 2: 描述一个 lambda 表达式;重构使用匿名内部类的代码以使用 lambda 表达式;描述类型推断和目标类型
项目 3: 开发使用java\.util\.function
程序包中包含的内置interface的代码,例如Function
,Consumer
,Supplier
,UnaryOperator
,Predicate
和Optional
API,包括interface的原始和二进制变体
项目 4: 开发使用方法引用的代码,包括将 lambda 表达式重构为方法引用
第 6 节:Java 集合
Lambda Expressions和Aggregate Operations部分涉及以下一些项目:
项目 1: 开发使用菱形和泛型声明的代码
项目 2: 开发使用 lambda 表达式迭代集合,过滤集合并对集合进行排序的代码
项目 3: 使用诸如findFirst
,findAny
,anyMatch
,allMatch
和noneMatch
之类的方法搜索数据
项目 4: 使用count
,max
,min
,average
和sum
方法对 Java 流执行计算,并使用collect
方法和Collector
类(包括averagingDouble
,groupingBy
,joining
和partitioningBy
)将结果保存到集合中方法
项目 5: 开发使用 Java SE 8 集合改进的代码,包括Collection\.removeIf
,List\.replaceAll
,Map\.computeIfAbsent
和Map\.computeIfPresent
方法
项目 6: 开发在 Java 流上使用merge
,flatMap
和map
方法的代码
第 7 节:Java 流
Lambda Expressions和Aggregate Operations部分涉及以下一些项目:
项目 1: 描述Stream
interface和管道;使用Arrays\.stream
和IntStream\.range
方法创建流;识别惰性的 lambda 操作
项目 2: 开发使用并行流的代码,包括流中的分解操作和归约操作
将 Java SE 7 升级到 Java SE 8 OCP 编程器
该考试涵盖的主题是:
第 1 节:Lambda 表达式
项目 1: 描述和开发使用 Java 内部类的代码,包括嵌套类,静态类,本地类和匿名类
项目 2: 描述和编写功能interface
项目 3: 描述一个 lambda 表达式;重构使用匿名内部类的代码以使用 lambda 表达式;描述类型推断和目标类型
第 2 节:使用内置 Lambda 类型
Lambda Expressions和Aggregate Operations部分涉及以下一些项目:
项目 1: 描述 java.util.function 包的interface
项目 2: 开发使用 Function interface的代码
项目 3: 开发使用使用者interface的代码
项目 4: 开发使用 Supplier interface的代码
项目 5: 开发使用 UnaryOperator interface的代码
项目 6: 开发使用 Predicate interface的代码
项目 7: 开发使用 java.util.function 包的基本interface的原始变体和二进制变体的代码
项目 8: 开发使用方法引用的代码,包括将 lambda 表达式重构为方法引用
第 3 节:带有 Lambda 的 Java 集合和流
Lambda Expressions和Aggregate Operations部分涉及以下一些项目:
项目 1: 使用 forEach()方法和方法链开发可迭代集合的代码
项目 2: 描述 Stream interface和管道
项目 3: 使用 Lambda 表达式过滤集合
项目 4: 识别正在运行的懒惰操作
第 4 节:使用 Lambda 进行收集操作
Lambda Expressions和Aggregate Operations部分涉及以下一些项目:
项目 1: 使用 map()方法开发代码以从对象提取数据
项目 2: 使用 findFirst(),findAny(),anyMatch(),allMatch()和 noneMatch()等方法搜索数据
项目 3: 描述 Optional 类的独特 Feature
项目 4: 使用 Java Stream 方法执行计算,例如 count(),max(),min(),average()和 sum()
项目 5: 使用 Lambda 表达式对集合进行排序
项目 6: 开发使用 Stream.collect()方法和 Collectors 类方法的代码,例如 averagingDouble(),groupingBy(),joining()和 partitioningBy()
第 5 节:并行流
项目 1: 开发使用并行流的代码
项目 2: 分解和减少流
第 6 节:Lambda 食谱
项目 1: 开发使用 Java SE 8 集合改进的代码,包括 Collection.removeIf,List.replaceAll,Map.computeIfAbsent 和 Map.computeIfPresent 方法
项目 2: 开发使用 Java SE 8 I/O 改进的代码,包括 Files.find,Files.walk 和 Files.lines 方法
项目 3: 在 Stream API 中使用 flatMap()方法
项目 4: 开发使用 Arrays.stream()和 IntStream.range()方法创建流的代码
第 7 节:方法增强
项目 1: 向interface添加静态方法
项目 2: 定义和使用interface的默认方法,并描述默认方法的继承规则
第 8 节:使用 Java SE 8 日期/时间 API
项目 1: 通过使用 LocalDate,LocalTime,LocalDateTime,Instant,Period 和 Duration 来创建和 管理 基于日期和时间的事件,包括单个对象中的日期和时间的组合
项目 2: 处理跨timezone的日期和时间,并 管理 夏令时产生的更改,包括格式化日期和时间值
项目 3: 使用 Instant,Period,Duration 和 TemporalUnit 定义,创建和 管理 基于日期和时间的事件