• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Devaka Cooray
  • Tim Cooke
  • Jeanne Boyarsky
  • Ron McLeod
Sheriffs:
Saloon Keepers:
  • Piet Souris
Bartenders:

Java 21 (830) vs Java 17 (829)

 
author & internet detective
Posts: 42271
951
Eclipse IDE VI Editor Java
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It's often helpful to be able to map objectives between exams. The new exam removes JDBC, adds more pattern matching, virtual threads and a few changes in behavior.

Note: Oracle makes changes to the objectives. These objectives are as of when the 830 exam launched and may vary slightly from the latest. The gist is the same.

OCP 21 830 ObjectiveOCP 21 830 TextJava 17 Objective and Comments
Handling Date, Time, Text, Numeric and Boolean Values
1.1Use primitives and wrapper classes. Evaluate arithmetic and boolean expressions, using the Math API and by applying precedence rules, type conversions, and casting.1.1, minor verbiage changes
1.2Manipulate text, including text blocks, using String and StringBuilder classes.1.2
1.3Manipulate date, time, duration, period, instant and time-zone objects including daylight saving time using Date-Time API.1.2,  didn't have daylight savings
Controlling Program Flow
2.1Create program flow control constructs including if/else, switch statements and expressions, loops, and break and continue statements.2.1
Using Object-Oriented Concepts in Java
3.1Declare and instantiate Java objects including nested class objects, and explain the object life-cycle including creation, reassigning references, and garbage collection.3.1
3.2Create classes and records, and define and use instance and static fields and methods, constructors, and instance and static initializers.3.2
3.3Implement overloaded methods, including var-arg methods.3.3, minor verbiage changes
3.4Understand variable scopes, apply encapsulation, and create immutable objects. Use local variable type inference.3.4
3.5Implement inheritance, including abstract and sealed types as well as record classes. Override methods, including that of the Object class. Implement polymorphism and differentiate between object type and reference type. Perform reference type casting, identify object types using the instanceof operator, and pattern matching with the instanceof operator and the switch construct.3.5 - didn't have record along with switch pattern matching
3.6Create and use interfaces, identify functional interfaces, and utilize private, static, and default interface methods.3.6
3.7Create and use enum types with fields, methods, and constructors.3.7
Handling Exceptions
4.1Handle exceptions using try/catch/finally, try-with-resources, and multi-catch blocks, including custom exceptions.4.1
Working with Arrays and Collections
5.1Create arrays, List, Set, Map and Deque collections, and add, remove, update, retrieve and sort their elements.5.1, minor verbiage changes
Working with Streams and Lambda expressions
6.1Use Java object and primitive Streams, including lambda expressions implementing functional interfaces, to create, filter, transform, process, and sort data.6.1, minor verbiage changes
6.2Perform decomposition, concatenation, and reduction, and grouping and partitioning on sequential and parallel streams.6.2
Packaging and Deploying Java Code
7.1Define modules and expose module content, including that by reflection, and declare module dependencies, define services, providers, and consumers.7.1, minor verbiage changes
7.2Compile Java code, create modular and non-modular jars, runtime images, and implement migration to modules using unnamed and automatic modules.7.2, minor verbiage changes
Managing Concurrent Code Execution
8.1Create both platform and virtual threads. Use both Runnable and Callable objects, manage the thread lifecycle, and use different Executor services and concurrent API to run tasks.8.1, didn't have platform vs virtual threads
8.2Develop thread-safe code, using locking mechanisms and concurrent API.8.2, minor verbiage changes
8.3Process Java collections concurrently and utilize parallel streams.8.3, minor verbiage changes
Using Java I/O API
9.1Read and write console and file data using I/O streams.9.1, minor verbiage changes
9.2Serialize and de-serialize Java objects.9.2
9.3Construct, traverse, create, read, and write Path objects and their properties using the java.nio.file API.9.3, minor verbiage changes
Implementing Localization
10.1Implement localization using locales and resource bundles. Parse and format messages, dates, times, and numbers, including currency and percentage values.11.1, minor verbiage changes


OCP 17 829 ObjectiveOCP 17 829 TextJava 21 Objective and Comments
Handling date, time, text, numeric and boolean values
1.1Use primitives and wrapper classes including Math API, parentheses, type promotion, and casting to evaluate arithmetic and boolean expressions1.1, minor verbiage changes
1.2Manipulate text, including text blocks, using String and StringBuilder classes1.2
1.3Manipulate date, time, duration, period, instant and time-zone objects using Date-Time API1.3, added daylight savings
Controlling Program Flow
2.1Create program flow control constructs including if/else, switch statements and expressions, loops, and break and continue statements2.1
Utilizing Java Object-Oriented Approach
3.1Declare and instantiate Java objects including nested class objects, and explain the object life-cycle including creation, reassigning references, and garbage collection3.1
3.2Create classes and records, and define and use instance and static fields and methods, constructors, and instance and static initializers3.2
3.3Implement overloading, including var-arg methods3.3, minor verbiage changes
3.4Understand variable scopes, use local variable type inference, apply encapsulation, and make objects immutable3.4
3.5Implement inheritance, including abstract and sealed classes. Override methods, including that of Object class. Implement polymorphism and differentiate object type versus reference type. Perform type casting, identify object types using instanceof operator and pattern matching3.5, added record along with switch pattern matching
3.6Create and use interfaces, identify functional interfaces, and utilize private, static, and default interface methods3.6
3.7Create and use enumerations with fields, methods and constructors3.7
Handling Exceptions
4.1Handle exceptions using try/catch/finally, try-with-resources, and multi-catch blocks, including custom exceptions4.1
Working with Arrays and Collections
5.1Create Java arrays, List, Set, Map, and Deque collections, and add, remove, update, retrieve and sort their elements5.1, minor verbiage changes
Working with Streams and Lambda expressions
6.1Use Java object and primitive Streams, including lambda expressions implementing functional interfaces, to supply, filter, map, consume, and sort data6.1, minor verbiage changes
6.2Perform decomposition, concatenation and reduction, and grouping and partitioning on sequential and parallel streams6.2
Packaging and deploying Java code and use the Java Platform Module System
7.1Define modules and their dependencies, expose module content including for reflection. Define services, producers, and consumers7.1, minor verbiage changes
7.2Compile Java code, produce modular and non-modular jars, runtime images, and implement migration using unnamed and automatic modules7.2, minor verbiage changes
Managing concurrent code execution
8.1Create worker threads using Runnable and Callable, manage the thread lifecycle, including automations provided by different Executor services and concurrent API8.1, added platform vs virtual threads
8.2Develop thread-safe code, using different locking mechanisms and concurrent API8.2, minor verbiage changes
8.3Process Java collections concurrently including the use of parallel streams8.3, minor verbiage changes
Using Java I/O API
9.1Read and write console and file data using I/O Streams9.1, minor verbiage changes
9.2Serialize and de-serialize Java objects9.2
9.3Create, traverse, read, and write Path objects and their properties using java.nio.file API9.3, minor verbiage changes
 Accessing databases using JDBC
10.1Create connections, create and execute basic, prepared and callable statements, process query results and control transactions using JDBC APIn/a - Removed
Implementing Localization
11.1Implement localization using locales, resource bundles, parse and format messages, dates, times, and numbers including currency and percentage values10.1, minor verbiage changes
 
Enthuware Software Support
Posts: 4945
64
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for the mapping!
Any idea why they numbered it 1Z0-830 instead of 1Z0-839?
 
Jeanne Boyarsky
author & internet detective
Posts: 42271
951
Eclipse IDE VI Editor Java
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Paul Anilprem wrote:Thanks for the mapping!
Any idea why they numbered it 1Z0-830 instead of 1Z0-839?


Maybe they realized they would run out of numbers if they advanced it by ten every two years? I don't know if that was the reason, but it's what I think of!
 
Paul Anilprem
Enthuware Software Support
Posts: 4945
64
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I wonder what is Oracle's thought process in picking exam topics. Most non-trivial applications use JDBC either directly or indirectly yet it is removed from the objectives while most applications do not use modules but Oracle wants the candidates to have deep knowledge of modules! Same goes for Serialization.
BTW, when I say "most", I do not have any real statistical data. Just what I observed.
 
author
Posts: 4356
45
jQuery Eclipse IDE Java
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Paul Anilprem wrote:I wonder what is Oracle's thought process in picking exam topics. Most non-trivial applications use JDBC either directly or indirectly yet it is removed from the objectives while most applications do not use modules but Oracle wants the candidates to have deep knowledge of modules! Same goes for Serialization.



The questions about JDBC were often not practical.  For example, I don't anyone that uses TYPE_SCROLL_INSENSITIVE or CONCUR_UPDATABLE, but they've been on the exam.  They also had questions about Statement, whereas PreparedStatement is often preferred for performance and security reasons.  In short, I was in favor of removing JDBC because of quality issues, but to my surprise, that did not weigh into their decision to remove it.  

In theory, modules is the future of Java, but I rarely see professionals working with them so you're guess is as good as mind.

For serialization, there are some interesting topics there, but I don't know many developers who go deep on serialization (or that use the built-in Java serialization).  A lot of people use Jackson/Gson.
reply
    Bookmark Topic Watch Topic
  • New Topic