New OCP Java 17 Certification 1z0-829 Topics

Understanding OCP Java Certification Exam and LTS

Since past few years, the release cycle of Java has changed drastically. A new version of Java is released every six months and a new major version is released every three years. The major versions are known as LTS, which is short for Long Term Support, versions. These are called LTS because these versions will be maintained regularly for a long time. Companies are encouraged to use LTS versions in their production environment because only LTS versions will get any security updates or bug fixes for a long time even after newer versions are released. The last LTS release was Java 11, which was released in 2018 and it will be supported until 2026.

The latest release of Java 17 (released in Sep 2021) is important in this respect because it is an LTS release.

Oracle's Java Certification Exams (OCA/OCP) are also typically centered on the LTS release. The most recent OCP Java Certification exam (1Z0-819) is based on Java 11 and as expected Oracle has announced a new certification exam based on Java 17 with exam code 1Z0-829. As of this writing (Mov 2021), Oracle has only annouced the exam objective for this new Java 17 certification exam but has not announced when this exam will actually be available for test takers. Our guess is that it will be available by early next year.

New topics in OCP Java 17 Certification 1Z0-829 Exam

As explained above the new OCAJP/OCPJP exams will be based on Java 17 and will include new features released in Java 12 to Java 17. We observed with OCP Java 11 certification exams that the exam objectives did not merely include the fundamental aspects of Java. They also included topics and APIs that are not used by most Java developers but were considered important by Oracle. For example, Modules is indeed an important addition to Java but the modules functionality is not used much in regular Java development. However, the OCP Java certification exam included it most likely because Oracle wanted to promote this feature.

Given this history, we are not surprised to see several new features on the exam and also several deletions. The following is a list of changes that are apparant from the official exam objectives.

  1. Override methods, including that of an Object class.

    In the previous versions of the exam, the equals and hashcode methods were dropped. It seems they have brought these methods back on the exam.
  2. Switch Expression and no fall through behavior

    You can now use switch expressions to return a value. You can use a lambda-style syntax for your expressions, without the fall-through/break issues. For example:
    char grade = 'B';
    int marks = switch(grade) {
        case 'A' -> 90;
        case 'B' -> 80;
        case 'C' -> 70;
        case 'D' -> 60;
        default -> 50;
    };
    System.out.println(marks); //prints 80, not 50!
    


  3. Multiline Strings / Text blocks

    Instead of writing this:
    String htmlBefore = "<html>\n" +
                  "    <body>\n" +
                  "        Hello, world!\n" +
                  "    </body>\n" +
                  "</html>\n";
    
    You can now do this:
    String htmlNow =  """
                  <html>
                      <body>
                          Hello, world
                      </body>
                  </html>
                  """;
    
    We don't think you will get tricky questions on it but you will definitely see code that uses this new syntax.

  4. Records

    Records are a big and important addition to Java. They allow you to create data centric classes really quickly without too much boilerplate code. As expected it is on the exam.

  5. Sealed classes

    Sealed classes introduce a fundamental change in the access control mechanism in Java. As expected it is on the exam.

  6. instanceof and pattern matching

    instanceof is an important operator in Java but the previous versions of the exam did not include it. However, since this operator has been enhanced with pattern matching, the Java 17 exam includes it.

  7. API Changes - method additions - Date/Time API

    The OCP Java certification exam covers a lot of standard JDK classes for example, from java.util to java.time to java.sql packages. The API for classes from these packages is enhanced regularly and you may see questions on new methods added to such classes. We will make a list of such new and important methods soon.

    Interestingly, the Date/Time API was on the OCP Java 8 exam but was dropped in OCP Java 11 exam. It has been brought back on the Java 17 exam. The exam objectives include the whole family of Date/Time API classes in this statement, "Manipulate date, time, duration, period, instant and time-zone objects using Date-Time API".

    Math API has also been brought back in the exam.


Topics that have been dropped from OCP Java 17 1Z0-829 exam

  1. Annotations
  2. Security
  3. Use generics, including wildcards - The objective was mentioned explicitly in OCP Java 11 but not in OCP Java 17 - Does it mean creation and usage of generic classes/methods is not on the exam anymore? We will have to wait and watch!

Let us know what you think about these topics and their inclusion in the OCP Java 17 certification exam. If you think of an important topic that might be on the exam, do let us know.