logo
Oracle专业级📚 其他

Java SE 17 Developer (1Z0-829)

Java SE 17 Developer 认证,验证您在 Java 17 新特性、模式匹配和密封类的专业能力。

$245
考试费
50
题量
90m
考试时长
68/100
及格分
?
一句话定论 · 看情况

在现代 Java 技术栈(Java 17+、Spring Boot 3、Records、Sealed Classes)团队里是硬通货;非 Java 方向别碰。

会员权益

JR 会员全站通

一个会员解锁全部认证题库、课程折扣和专属工具

  • 全部认证题库免费刷
  • 课程最高 5 折优惠
  • AI 工具 & Chrome 插件
  • 优先预约 1v1 导师
查看会员方案

这张认证到底考什么

先把考试形式、适合人群、备考时长和学习范围讲清楚,再决定要不要投入时间。

Oracle Certified Professional: Java SE 17 Developer (1Z0-829) 是 Oracle 当前主推的 Java 专业级认证,对应 Java 17 LTS。Java 17 是 Spring Boot 3.x、Jakarta EE 10、Quarkus 3 的最低要求版本 — 换句话说,2024 年之后所有新的企业 Java 项目基本都跑在 Java 17 或 21 上,1Z0-829 考的就是"现代 Java 开发者应该会什么"。

考试 50 题、90 分钟、68% 通过线、$245 USD。对比老的 1Z0-808(Java 8 入门级,70 题/150 分钟/65%),1Z0-829 题量少但时间更紧 — 平均每题不到 2 分钟,而且考点深度完全不同。它不再是"能看出这段代码编译报错"的语法题,而是"Records 的 canonical constructor 里能不能修改字段"、"Sealed interface 的 permits 子类是否必须在同一个模块里"、"Pattern matching for instanceof 的作用域规则"这类真正考 Java 17 新特性掌握度的题。

考纲覆盖 17 个主题域,重点集中在:Records(紧凑构造、不可变性)、Sealed Classes(permits、与 pattern matching 的配合)、Pattern Matching for instanceof、Switch Expressions(yield、多 label case、穷尽性检查)、Text Blocks、Lambdas & Streams 深度用法、Modules(JPMS:requires、exports、opens、services)、Concurrency(CompletableFuture、并发集合、Thread 新 API)、NIO.2、Localization、Secure Coding。Modules 和 Concurrency 是失分重灾区。

和 1Z0-808(Java 8 OCA)的本质区别:808 是入门证,证明你"会 Java 语法";829 是专业证,证明你"能写现代 Java 生产代码"。Oracle 从 Java 11 开始取消了"Associate + Professional"两级结构,829 直接就是 OCP 级别,没有预备证要求 — 但实战上没有 2 年以上 Java 经验硬考 829 通过率很低。

你会反复碰到的核心服务

Oracle 技术数据库管理系统架构性能优化故障排除

学完以后你能带走什么

  • 获得 Oracle 1Z0-829 官方认证
  • 掌握考试核心领域的知识和最佳实践
  • 具备实际项目中应用相关技术的能力
  • 提升 Oracle 技术领域职业竞争力

考试详情

考试代码
1Z0-829
发证机构
Oracle
时长
90 分钟
题目数
50
及格分
68/100
有效期
0
考试费用
$245 USD
题型
单选题、多选题
考试语言
English, 日本語
官方页面

适合谁考

适合人群

  • Oracle 技术相关从业人员
  • 希望获得 Oracle 1Z0-829 认证的 IT 专业人员
  • 数据库管理员和开发人员
  • 云架构师和运维工程师
  • 希望提升 Oracle 技术能力的从业者

开始前最好先有

  • 具备相关 Oracle 技术的基础知识
  • 建议有一定的实践经验
  • 了解基本的数据库或云计算概念

值不值得考?职业价值

Oracle 1Z0-829 持证人的薪资区间、对应岗位、以及真实的职业影响。

澳洲
$110K-160KAUD
美国
$120K-180KUSD
中国
¥250K-500KCNY
新加坡
$90K-140KSGD
Senior Java DeveloperJava Backend Engineer (Spring Boot 3)Java Platform EngineerJava Microservices Engineer高级 Java 开发工程师Java 技术专家 / Tech Lead

这张证值不值,完全取决于你所在的技术栈方向。

值得考的人:已经在写 Java 2-5 年的中级开发者,团队正在从 Java 8/11 迁移到 Java 17,或者想跳槽到一个明确使用 Spring Boot 3 的团队。1Z0-829 能强制你系统学完 Records、Sealed Classes、Pattern Matching 这些新特性 — 很多人平时写 Java 17 的代码,但其实只是用 Java 17 跑 Java 8 的写法。考完这张证至少能保证你真的在用"Java 17 的方式"写代码,这在技术面试的 code review 环节很加分。

犹豫值得的人:自学转码者。问题不是证本身,而是现代 Java 岗位几乎全部要求 Spring Boot 3 + JPA + 微服务实战经验。你花 3 个月考 829 不如花 3 个月做 2 个 Spring Boot 3 完整项目 + 部署到 AWS/GCP。招聘方 100% 更看重后者。如果你已经有项目经验,再补这张证会锦上添花。

不值得考的人:非 Java 技术栈的工程师(Python/Go/Node 主栈)、资深 Java 架构师(10+ 年经验,简历不缺背书)、目标是做 Android 的开发者(Android 用的是 Java 语法子集 + Kotlin,这张证考的 JPMS/CompletableFuture 基本用不到)。

和 1Z0-808 的取舍:如果你是 2025-2026 年才开始学 Java 的新人,直接冲 829,跳过 808。808 考的 Java 8 语法在现代企业里虽然还在用(存量系统),但已经不是"值得专门考证"的方向。唯一例外是你目标进澳洲四大行/政府老系统部门 — 那里 808 的存量认知度仍然更高。

Spring 认证 vs Oracle Java 认证:VMware 的 Spring Certified Professional(Spring Certified Professional 2024)在现代 Java 就业市场上比 Oracle Java 认证更有用。如果你只能选一张证,优先 Spring;如果能考两张,先 Spring 再 829。

备考节奏

有 AWS 实操经验

6-10

零基础切入

16-24

建议日投入

2-2.5 小时/天

学习路径预览

7
1
1Z0-829 考试概述与备考指南
30 min
2
Java 语言基础与数据类型
60 min
3
面向对象编程与密封类
70 min
4
核心 API 与异常处理
80 min
5
并发编程与模块系统
90 min
6
JDBC、本地化与注解
100 min
+ 还有 1 章在完整学习路径里

分阶段备考路径

过来人总结的分阶段备考节奏,按周拆分,不是空话。

1

第一阶段:Java 17 新特性专项(3-4 周)

这是 829 和 808 最大的分水岭。必须吃透 Records(紧凑构造器能校验但不能赋值给非 final 字段外的任何东西,因为 canonical constructor 自动赋值)、Sealed Classes(permits 子类必须 final/sealed/non-sealed 三选一,且必须和 sealed 类在同一模块里)、Pattern Matching for instanceof(绑定变量的作用域按流敏感分析)、Switch Expressions(yield 用于代码块返回、穷尽性检查强制 default 或覆盖所有 sealed 子类)、Text Blocks(缩进计算规则、转义 \s 保留空格)。建议直接读 JEP 文档(JEP 395 Records、JEP 409 Sealed、JEP 406 Pattern Matching),比二手教程准确得多。

2

第二阶段:JPMS 模块系统(2-3 周)

829 的失分重灾区。必须彻底搞懂 module-info.java 的五大指令:requires(可传递 transitive、静态 static)、exports(可限定 to 某模块)、opens(反射访问)、uses(服务消费)、provides...with(服务提供)。重点区分:exports vs opens(编译期 vs 运行期反射)、automatic module vs unnamed module(classpath 回退行为)、split package 为什么在模块系统里被禁。配合 jdeps、jlink 工具实际操作一遍,不要只看文档。

3

第三阶段:Streams + Concurrency 深度(3-4 周)

Streams 要会写 collect(groupingBy(..., counting()))、flatMap 展开嵌套结构、reduce 的三参数版本(identity、accumulator、combiner)。Concurrency 考点集中在 CompletableFuture(thenApply vs thenCompose、exceptionally vs handle)、ConcurrentHashMap 的 compute/merge 原子操作、ExecutorService 的 shutdown vs shutdownNow、Fork/Join 框架。Thread 的 interrupt 机制每次必考一题。

4

第四阶段:Enthuware 模考冲刺(2-3 周)

Enthuware 的 OCP 17 题库(约 $15 USD)仍然是金标,题目难度和真考几乎一致(有些还更难)。建议做 6-8 套模考,稳定 75% 以上再去考。重点做错题复盘,每道错题在 IDE 里跑一遍验证,用 jshell 快速测试 Records/Sealed 的边界行为。考前 3 天只刷错题,不做新题。

通过者的真实经验

过来人的备考时长、分数、以及踩过的坑。

我们团队正在从 Spring Boot 2 升 3,老板要求核心开发者都考 829。备考最大收获不是"通过考试"而是强制自己真的学完 Sealed Classes 和 Pattern Matching — 之前一直以为自己会,做模考发现根本没理解作用域规则。考完之后 code review 里能看出很多同事写的"Java 17 代码"其实还是 Java 8 的思路。

Tom H.82%
澳洲某保险公司 Senior Java Dev(4 年 Java 经验) · 备考 10 周

国内大厂对 Oracle 认证的认可度不高,我考主要是因为要去新加坡面试。事实证明有用 — 新加坡的面试官在看到 OCP 17 之后,技术面直接跳过了基础轮,进入系统设计环节。这张证在海外求职的"信号价值"比国内强很多。

K. Wang76%
中国某互联网大厂 Java 技术专家 · 备考 8 周

我踩过的最大坑是轻视 JPMS 模块系统 — 平时工作根本不用 module-info.java,我备考时也没怎么看,结果考试里模块题占了 8-10 题,错了一半。建议不管你工作中用不用模块,考前必须把 requires transitive、exports to、provides...with 这些指令练熟。

Ravi S.71%
印度 → 美国 H1B Java Dev · 备考 12 周

同赛道认证对比

Oracle 1Z0-829Oracle 1Z0-808Oracle 1Z0-809
机构OracleOracleOracle
级别专业级助理级专业级
考试费$245$245$245
时长90 min150 min150 min
题量507785
有效期0 0 0

备考技巧与常见失误

💡

**50 题 / 90 分钟 = 每题 108 秒**:比 808 紧张得多。看到超过 20 行的代码题先 mark 跳过,第一遍优先做新特性的概念题和短代码题攒分,长题第二遍回头做。

💡

**OnVUE 在线监考**:1Z0-829 支持线上监考,房间 360 度扫描、桌面只能有白纸+笔。网络断线超过 30 秒可能判作弊,务必用有线网络+备用热点。

💡

**jshell 是你的备考神器**:Java 17 的 jshell 支持所有新特性,Records、Sealed、Pattern Matching 的边界行为用 jshell 5 秒就能验证,比打开 IntelliJ 快得多。备考全程让 jshell 常驻终端。

💡

**重点刷 Modules 和 Concurrency**:这俩是 829 失分率最高的两个域。Enthuware 的 Last Day 模式里这两个域错的要单独整理到错题本,每题都在 IDE 里真实跑一遍。

💡

**考前 3 天读 JEP 而不是教材**:JEP 395(Records)、JEP 406(Pattern Matching)、JEP 409(Sealed Classes)、JEP 361(Switch Expressions)这几篇 JEP 文档比任何二手教材都精确。考题里的"陷阱"几乎都能在 JEP 的 Specification 章节里找到原话。

⚠️

**Sealed classes 必须和 permits 子类在同一模块** — 如果项目未模块化(unnamed module),permits 的子类必须在同一包里;如果模块化了,必须在同一命名模块里。跨模块的 sealed 继承是编译错误。另外 permits 子类三选一:`final`(不可再继承)、`sealed`(继续限制)、`non-sealed`(开放继承)。漏掉这三个修饰符之一直接编译失败。

⚠️

**Record canonical constructor 的赋值规则** — 紧凑构造器(compact constructor)里可以校验和修改参数(`if (x < 0) throw ...; x = Math.abs(x);`),但**不能**显式赋值给 this 的字段(`this.x = x;` 是编译错误),因为 JVM 会在构造器末尾自动做所有字段赋值。这和普通类的构造器行为完全相反,考试必考。

⚠️

**Pattern matching for instanceof 的作用域是流敏感的** — `if (obj instanceof String s && s.length() > 0)` 里的 `s` 只在 && 之后的分支和 if body 内可见;`if (!(obj instanceof String s)) return; // s here is visible!` 这种反向判断后 s 反而在下面可见。考题经常用 else 分支或 return 后的代码测试你对"作用域穿透"的理解。

⚠️

**Modules vs Classpath 的回退行为** — 模块化 JAR 放到 classpath 上会变成 unnamed module,所有 exports 失效(等于全开放);非模块化 JAR 放到 module path 上会变成 automatic module,模块名从 MANIFEST 的 Automatic-Module-Name 或文件名推导。这俩方向的混用规则每次必考一道理解题。

⚠️

**var 的局部类型推导限制** — `var x = null` 编译错误(无法推导)、`var arr = {1,2,3}` 编译错误(数组初始化器必须明确类型)、`var` 不能用于 lambda 参数以外的方法参数、不能用于字段、不能用于方法返回类型。但 `var` **可以**用于 lambda 参数(Java 11+)且此时可以加注解:`(@NonNull var x) -> x.length()`。

⚠️

**Switch expression 的穷尽性检查** — 对 sealed 类型做 switch 表达式时,如果 permits 的所有子类都被覆盖,编译器不要求 default 分支;如果新增一个 permits 子类但没更新 switch,会编译报错。这是 sealed + switch 组合的核心价值。但对普通类型(如 int、String)做 switch 表达式,必须有 default 或覆盖所有 enum 常量。

⚠️

**CompletableFuture 的 thenApply vs thenCompose** — thenApply 接收 `Function<T, R>` 返回 `CompletableFuture<R>`;thenCompose 接收 `Function<T, CompletableFuture<R>>` 返回 `CompletableFuture<R>`(扁平化,类似 flatMap)。用错会导致 `CompletableFuture<CompletableFuture<String>>` 这种嵌套地狱。考题经常给一段链式调用让你选输出类型。

FAQ

常见问题

如果你准备考 Oracle 1Z0-829,先从真题型练习开始。

30+ 练习题、章节学习路径、模考、错题复盘和 AI 导师都在备考页里。

进入备考页

$39 起 · 前 2 章可免费试学

你可能顺手也会看这些