• 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 all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Liutauras Vilda
  • Paul Clapham
  • Bear Bibeault
  • Jeanne Boyarsky
  • Ron McLeod
  • Tim Cooke
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Tim Holloway
  • Jj Roberts
  • Stephan van Hulst
  • Carey Brown
  • salvin francis
  • Scott Selikoff
  • fred rosenberger

Java 8 (808/809) vs Java 11 (819)

author & internet detective
Posts: 40239
Eclipse IDE VI Editor Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It's often helpful to be able to map objectives between exams.

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

OCP 11 819 ObjectiveOCP 11 819 TextJava 8 Objective
Working with Java data types
1.1Use primitives and wrapper classes, including, operators, parentheses, type promotion and casting808 (2.1, 2.2, 3.1)
1.2Handle text using String and StringBuilder classes808 (3.2, 9.1, 9.2), 809 (1.4)
1.3Use local variable type inference, including as lambda parameters
Controlling Program Flow
2.1Create and use loops, if/else, and switch statements808 (3.3, 3.4, 5.1, 5.2, 5..3, 5.4, 5.5)
Java Object-Oriented Approach
3.1Declare and instantiate Java objects including nested class objects, and explain objects' lifecycles (including creation, dereferencing by reassignment, and garbage collection)808 (1.2, 1.4, 2.4, 6.1, 6.2, 6.3, 6.6), 809 (1.6, 2.3, 2.5)
3.2Define and use fields and methods, including instance, static and overloaded methods808 (2.3), 809 (1.6)
3.3Initialize objects and their members using instance and static initialiser statements and constructors
3.4Understand variable scopes, apply encapsulation and make objects immutable808 (1.1, 3.4, 3.5), 809 (1.1, 1.2, 1.5)
3.5Create and use subclasses and superclasses, including abstract classes808 (6.1, 7.1, 7.5, 7.6), 809 (2.1, 2.2)
3.6Utilize polymorphism and casting to call methods, differentiate object type versus reference type808 ( 7.1, 7.2, 7.3, 7.4), 809(1.3)
3.7Create and use interfaces, identify functional interfaces, and utilize private, static, and default methods808 (7.7)
3.8Create and use enumerations809 (2.4)
Exception Handling
4.1Handle exceptions using try/catch/finally clauses, try-with-resource, and multi-catch statements808 (8.1, 8.2, 8.3, 8.4, 8.5), 809 (6.1, 6.2, 6.3)
4.2Create and use custom exceptions809 (6.4)
Working with Arrays and Collections
5.1Use generics, including wildcards809 (3.1)
5.2Use a Java array and List, Set, Map and Deque collections, including convenience methods808 (4.1, 4.2, 9.4), 809 (3.2, 3.5)
5.3Sort collections and arrays using Comparator and Comparable interfaces808 (4.1), 809 (3.3)
Working with Streams and Lambda expressions
6.1Implement functional interfaces using lambda expressions, including interfaces from the java.util.function package808 (9.5), 809 (1.4, 2.6, 3.8, 4.1,, 4.2, 4.3, 4.4, 5.1, 5.2)
6.2Use Java Streams to filter, transform and process data809 (3.4, 3.5, 3.6, 3.7, 5.5, 5.7)
6.3Perform decomposition and reduction, including grouping and partitioning on sequential and parallel streams809 (5.3, 5.4, 5.6, 5.7, 10.6)
Java Platform Module System
7.1Deploy and execute modular applications, including automatic modulesnew topic
7.2Declare, use, and expose modules, including the use of servicesnew topic
8.1Create worker threads using Runnable and Callable, and manage concurrency using an ExecutorService and java.util.concurrent API809 (10.1)
8.2Develop thread-safe code, using different locking mechanisms and java.util.concurrent API809 (10.2, 10.4)
Java I/O API
9.1Read and write console and file data using I/O Streams809 (8.1, 8.2)
9.2Implement serialization and deserialization techniques on Java objectsnew topic
9.3Handle file system objects using java.nio.file API809 (9.1, 9.2, 9.3)
Secure Coding in Java SE Application
10.1Develop code that mitigates security threats such as denial of service, code injection, input validation and ensure data integritynew topic
10.2Secure resource access including filesystems, manage policies and execute privileged codenew topic
Database Applications with JDBC
11.1Connect to and perform database SQL operations, process query results using JDBC API(809 )11.1, 11.2, 11.3)
12.1Create, apply, and process annotationsnew topic
13.1Implement Localization using Locale, resource bundles, and Java APIs to parse and format messages, dates, and numbers809 (12.2, 12.4)

OCA 8 ObjectiveOCA 8 TextOCP 11 819 Objective
Java Basics
1.1Define the scope of variables3.4
1.2Define the structure of a Java class3.1
1.3Create executable Java applications with a main method; run a Java program from the command line; including console output.n/a
1.4Import other Java packages to make them accessible in your code3.1
1.5                Compare and contrast the features and components of Java such as: platform independence, object orientation, encapsulation, etc.n/a
Working With Java Data Types
2.1Declare and initialize variables (including casting of primitive data types)1.1
2.2Differentiate between object reference variables and primitive variables1.1
2.3Know how to read or write to object fields3.2
2.4Explain an Object's Lifecycle (creation, "dereference by reassignment" and garbage collection)3.1
2.5Use call methods on user-created wrapper class objectsNo longer on exam
Using Operators and Decision Constructs
3.1Use Java operators; including parentheses to override operator precedence1.1
3.2Test equality between Strings and other objects using == and equals ()1.2
3.3Create if and if/else constructs and ternary constructs2.1
3.4Use a switch statement2.1
Creating and Using Arrays
4.1Declare, instantiate, initialize and use a one-dimensional array5.2, 5.3
4.2Declare, instantiate, initialize and use multi-dimensional array5.2
Using Loop Constructs
5.1Create and use while loops2.1
5.2Create and use for loops including the enhanced for loop2.1
5.3Create and use do/while loops2.1
5.4Compare loop constructs2.1
5.5Use break and continue2.1
Working with Methods and Encapsulation
6.1Create methods with arguments and return values; including overloaded methods3.1, 3.5
6.2Apply the static keyword  to methods and fields  3.1
6.3Create and overload constructors; including impact on default constructors3.1
6.4Apply access modifiers3.4
6.5Apply encapsulation principles to a class3.4
6.6Determine the effect upon object references and primitive values when they are passed  into methods that change the values3.1
Working with Inheritance
7.1Describe the hierarchy of implementing inheritance3.5, 3.6
7.2Develop code that demonstrates the use of polymorphism3.6
7.3Differentiate between the type of a reference and the type of an object; including overriding and object type versus reference type3.6
7.4Determine when casting is necessary3.6
7.5Use super and this to access objects and constructors3.5, 3.6
7.6Use abstract classes and interfaces3.5, 3.7
Handling Exceptions
8.1Differentiate among checked exceptions, RuntimeExceptions and Errors4.1
8.2Create a try-catch block and determine how exceptions alter normal program flow4.1
8.3Describe the advantages of Exception handling4.1
8.4Invoke a method that throws an exception4.1
8.5Recognize common exception classes (such as NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException)4.1
Working with Selected Classes from the Java API
9.1Manipulate data using the StringBuilder class and its methods1.2
9.2Creating and manipulating Strings1.2
9.3Create and manipulate calendar data using classes from java.time.LocalDateTime,  java.time.LocalDate, java.time.LocalTime, java.time.format.DateTimeFormatter, java.time.PeriodNo longer in objectives
9.4Declare and use an ArrayList of a given type5.2
9.5Write a simple Lambda expression that consumes a Lambda Predicate expression6.1

OCPJP 8 ObjectiveOCPJP 8 TextOCP 11 819 Objective
Java Class Design
1.1Implement encapsulation3.4
1.2Implement inheritance including visibility modifiers and composition 3.4  
1.3Implement polymorphism 3.6  
1.4Override hashCode, equals, and toString methods from Object class1.2, 6.1
1.5Create and use singleton classes and immutable classes 3.4 (singleton no longer in scope)
1.6Develop code that uses static keyword on initialize blocks, variables, methods, and classes 3.1, 3.2
2.1Develop code that uses abstract classes and methods3.5
2.2Develop code that uses final keyword3.5
2.3Create inner classes including static inner class, local class, nested class, and anonymous inner class3.1
2.4Use enumerated types including methods, and constructors in an enum type3.8
2.5Develop code that declares, implements and/or extends interfaces and use the atOverride annotation3.1
2.6Create and use Lambda expressions6.1
Generics and Collections
3.1Create and use a generic class5.1
3.2Create and use ArrayList, TreeSet, TreeMap, and ArrayDeque objects5.2
3.3Use java.util.Comparator and java.lang.Comparable interfaces5.3
3.4Collections Streams and Filters6.2
3.5Iterate using forEach methods of Streams and List5.2, 6.2
3.6Describe Stream interface and Stream pipeline6.2
3.7Filter a collection by using lambda expressions6.2
3.8Use method references with Streams6.1
Lambda Built-in Functional Interfaces
4.1Use  the built-in interfaces included in the java.util.function package such as Predicate, Consumer, Function, and Supplier6.1
4.2Develop code that uses primitive versions of functional interfaces6.1
4.3Develop code that uses binary versions of functional interfaces6.1
4.4Develop code that uses the UnaryOperator interface6.1
Java Stream API
5.1Develop code to extract data from an object using peek() and map() methods including primitive versions of the map() method6.1
5.2Search for data by using search methods of the Stream classes including findFirst, findAny, anyMatch, allMatch, noneMatch6.1
5.3Develop code that uses the Optional class6.3
5.4Develop code that uses Stream data methods and calculation methods6.3
5.5Sort a collection using Stream API6.2
5.6Save results to a collection using the collect method and group/partition data using the Collectors class6.3
5.7Use of merge() and flatMap() methods of the Stream API6.2, 6.3
Exceptions and Assertions
6.1Use try-catch and throw statements4.1
6.2Use catch, multi-catch, and finally clauses4.1
6.3Use Autoclose resources with a try-with-resources statement4.1
6.4Create custom exceptions and Auto-closeable resources4.2
6.5Test invariants by using assertionsNo longer in objectives
Use Java SE 8 Date/Time API
7.1Create and manage date-based and time-based events including a combination of date and time into a single object using LocalDate, LocalTime, LocalDateTime, Instant, Period, and DurationNo longer in objectives
7.2Work with dates and times across timezones and manage changes resulting from daylight savings including Format date and times valuesNo longer in objectives
7.3Define and create and manage date-based and time-based events using Instant, Period, Duration, and TemporalUnitNo longer in objectives
Java I/O Fundamentals
8.1Read and write data from the console9.1
8.2Use BufferedReader, BufferedWriter, File, FileReader, FileWriter, FileInputStream, FileOutputStream, ObjectOutputStream, ObjectInputStream, and PrintWriter in the java.io package9.1
Java File I/O (NIO.2)
9.1Use Path interface to operate on file and directory paths9.2
9.2Use Files class to check, read, delete, copy, move, manage metadata of a file or directory9.2
9.3Use Stream API with NIO.29.2
Java Concurrency
10.1Create worker threads using Runnable, Callable and use an ExecutorService to concurrently execute tasks8.1
10.2Identify potential threading problems among deadlock, starvation, livelock, and race conditions8.2
10.3Use synchronized keyword and java.util.concurrent.atomic package to control the order of thread executionNo longer in objectives
10.4Use java.util.concurrent collections and classes including CyclicBarrier and CopyOnWriteArrayList8.2
10.5Use parallel Fork/Join FrameworkNo longer in objectives
10.6Use parallel Streams including reduction, decomposition, merging processes, pipelines and performance6.3
Building Database Applications with JDBC
11.1Describe the interfaces that make up the core of the JDBC API including the Driver, Connection, Statement, and ResultSet interfaces and their relationship to provider implementations11.1 (Callable Statement no longer on exam)
11.2Identify the components required to connect to a database using the DriverManager class including the JDBC URL11.1
11.3Submit queries and read results from the database including creating statements, returning result sets, iterating through the results, and properly closing result sets, statements, and connections11.1
12.1Describe the advantages of localizing an applicationNo longer in objectives
12.2Read and set the locale by using the Locale object12.1
12.3Create and read a Properties fileNo longer in objectives
12.4Build a resource bundle for each locale and load a resource bundle in an application12.1
Ranch Hand
Posts: 389
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jeanne and/or Scott,

Thanks!  I am conflicted since I feel as if the rug was pulled out from underneath me and, thanks to your only partially read 816 book by me, I nearly passed 816 on Sept 30 without the opportunity to fully prepare for 816.

From Oracle:

Oracle Certification Program normally provides 90 days notice for the retirement of any certification exam.

I've been thinking about 809 now that 816 has never existed and I don't see a date in sight as to when my employer will be migrating to Java 11.  (We aren't fully migrated to Java 8 yet.)  When you worked with Oracle, were you able to get a sense of their thinking in removing 816 and how and/or why Oracle's thinking would not also prompt Oracle to also eventually abruptly remove 809 as well?  

In other words, do you have a firm commitment from Oracle that they will not retire 809 within the next 6 months?
Ranch Hand
Posts: 227
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Charles,

I'm sorry to learn that you didn't pass 816. I think you should aim for 819. It doesn't seem to make sense to go for Java 8 certification now. I'm sure this certification will retire soon. So why stress yourself again with another possible deadline? If you go for 819, you can take all the time you need to study. For your info, I have used Java 8 for a few years now as it is the version we use in my company, but I've never used any of the Java 11 features in work.
Charles O'Leary
Ranch Hand
Posts: 389
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Edmund Yong wrote:Hi Charles,

I'm sorry to learn that you didn't pass 816. I think you should aim for 819. It doesn't seem to make sense to go for Java 8 certification now. I'm sure this certification will retire soon. So why stress yourself again with another possible deadline? If you go for 819, you can take all the time you need to study. For your info, I have used Java 8 for a few years now as it is the version we use in my company, but I've never used any of the Java 11 features in work.

Under adverse circumstances, I would argue that it was a wise gamble (that I lost money on, but gained experience nevertheless).  819 expects too much (1299 pages of Sybex book info across 22 Chapters + Appendix + the Supplemental external Security info)  in too little time for one sitting, especially for a turtle like myself who always welcomes as much time as I can get (and uses at least 6 other programming languages on the job, so my mental capacity will come into question obviously).

I would imagine those that are looking at Java certification for the very first time may additionally be discouraged at 819.  

Here' Scott's Taking the 1Z0-819 Exam: Study Everything and Watch the Clock! (Part 2 of 2) latest post.

Personally, I think that it would be nice if Oracle would elect to increase the time to 3 hours to match the other exams without further changing anything else about 819.  Any Oracle employees reading this right now?  Can you put that in the suggestion box?  (Although, re-establishing 816 would be ideal... holding my breathe for that one. )
Jeanne Boyarsky
author & internet detective
Posts: 40239
Eclipse IDE VI Editor Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Charles O'Leary wrote: In other words, do you have a firm commitment from Oracle that they will not retire 809 within the next 6 months?

No. I also don't have a weak commitment. All I have is my opinion. And I think Oracle will get rid of the 809 "sometime in 2021".
    Bookmark Topic Watch Topic
  • New Topic