Bookmark Topic Watch 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 ...
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
  • Mikalai Zaikin
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
It's often helpful to be able to map objectives between exams. Especially when you are studying from an older/newer book than the exam you are taking. Also see OCAJP7andOCPJP7vsOCJP6 and Ocajp7vsOcajp8 and Java8UpgradeExams

As noted in this OCPJP thread, the biggest differences are:


  • Patterns in Object-Oriented Design Principles
  • String Processing
  • Some of the objectives in threads, NIO, JDBC and localization

  • Added

  • Lambdas/functional programming/streams
  • Java 8 Dates (more detailed than OCA coverage)

  • Note: Oracle makes changes to the objectives. These Java 7 objectives are as of when we wrote the the OCP 7 wiki page and varies slightly from the latest. The gist is the same.

    OCPJP 7 ObjectiveOCPJP 7 TextOCJP 8 Objective
    Section 1: Java Class Design
    1.1Use access modifiers: private, protected, and public1.2
    1.2Override methods2.5
    1.3Overload constructors and other methods appropriatelyNot mentioned. Implied?
    1.4Use the instanceof operator and casting1.3
    1.5Use virtual method invocation1.3
    1.6Override methods from the Object class to improve the functionality of your class1.4
    1.7Use package and import statementsNot mentioned
    Section 2: Advanced Class Design
    2.1Identify when and how to apply abstract classes2.1
    2.2Construct abstract Java classes and subclasses2.1
    2.3Use the static and final keywords2.2
    2.4Create top-level and nested classes2.3
    2.5Use enumerated types2.4
    Section 3: Object-Oriented Design Principles
    3.1Write code that declares, implements and/or extends interfaces2.5
    3.2Choose between interface inheritance and class inheritancenot mentioned
    3.3Develop code that implements "is-a" and/or "has-a" relationshipsnot mentioned
    3.4Apply object composition principles1.3
    3.5Design a class using the Singleton design pattern1.5
    3.6Write code to implement the DAO patternnot mentioned
    3.7Design and create objects using a factory, and use factories from the APInot mentioned
    Section 4: Generics and Collections
    4.1Create a generic class3.1
    4.2Use the diamond syntax to create a collectionnot mentioned, implied?
    4.3Analyze the interoperability of collections that use raw type and generic typesnot mentioned, implied?
    4.4Use wrapper classes and autoboxingnot mentioned, implied?
    4.5Create and use a List, a Set and a Deque3.2
    4.6Create and use a Map3.2
    4.7Use java.util.Comparator and java.lang.Comparable3.2
    4.8Sort and search arrays and lists3.2
    Section 5: String Processing
    5.1Search, parse and build stringsnot mentioned
    5.2Search, parse, and replace strings by using regular expressions, using expression patterns for matching limited to: . (dot), * (star), + (plus), ?, \d, \D, \s, \S, \w, \W, \b. \B, [], ()not mentioned
    5.3Format strings using the formatting parameters: %b, %c, %d, %f, and %s in format stringsnot mentioned
    Section 6: Exceptions and Assertions
    6.1Use throw and throws statements6.1
    6.2Use the try statement with multi-catch, and finally clauses6.2
    6.3Autoclose resources with a try-with-resources statement6.3
    6.4Create custom exceptions6.4
    6.5Test invariants by using assertions6.5
    Section 7: Java I/O Fundamentals
    7.1Read and write data from the console8.1
    7.2Use streams to read and write files8.2
    Section 8: Java File I/O (NIO.2)
    8.1Use the Path class to operate on file and directory paths9.1
    8.2Use the Files class to check, delete, copy, or move a file or directory9.2
    8.3Read and change file and directory attributesnot mentioned
    8.4Recursively access a directory treenot mentioned
    8.5Find a file by using the PathMatcher classnot mentioned
    8.6Watch a directory for changes by using WatchServicenot mentioned
    Section 9: Building Database Applications with JDBC
    9.1Define the layout of the JDBC API11.1
    9.2Connect to a database by using a JDBC driver11.2
    9.3Update and query a database11.3
    9.4Customize the transaction behavior of JDBC and commit transactionsnot mentioned
    9.5Use the JDBC 4.1 RowSetProvider, RowSetFactory, and RowSet interfacesnot mentioned
    Section 10: Threads
    10.1Create and use the Thread class and the Runnable interface10.1
    10.2Manage and control thread lifecyclenot mentioned
    10.3Synchronize thread access to shared data10.3
    10.4Identify potential threading problems10.2
    Section 11: Concurrency
    11.1Use java.util.concurrent collections10.1
    11.2Apply atomic variables and locks10.3
    11.3Use Executors and ThreadPools10.1
    11.4Use the parallel Fork/Join Framework10.5
    Section 12: Localization
    12.1Read and set the locale by using the Locale object12.2
    12.2Build a resource bundle for each local12.4
    12.3Load a resource bundle in an application12.1, 12.4
    12.4Format text for localization by using NumberFormat and DateFormatnot mentioned

    OCPJP 8 ObjectiveOCPJP 8 TextOCPJP 7 Objective
    Section 1: Java Class Design
    1.1Implement encapsulationImplied in objective 1
    1.2Implement inheritance including visibility modifiers and composition1.1
    1.3Implement polymorphism1.4, 1.5, 3.4
    1.4Override hashCode, equals, and toString methods from Object class1.6
    1.5Create and use singleton classes and immutable classes3.5
    1.6Develop code that uses static keyword on initialize blocks, variables, methods, and classes2.3
    Section 2: Advanced Class Design
    2.1Develop code that uses abstract classes and methods2.1, 2.2
    2.2Develop code that uses final keyword2.3
    2.3Create inner classes including static inner class, local class, nested class, and anonymous inner class2.4
    2.4Use enumerated types including methods, and constructors in an enum type2.5
    2.5Develop code that declares, implements and/or extends interfaces and use the atOverride annotation3.1
    2.6Create and use Lambda expressionsnew
    Section 3: Generics and Collections
    3.1Create and use a generic class4.1
    3.2Create and use ArrayList, TreeSet, TreeMap, and ArrayDeque objects4.5, 4.6
    3.3Use java.util.Comparator and java.lang.Comparable interfaces4.7
    3.4Collections Streams and Filtersnew
    3.5Iterate using forEach methods of Streams and Listnew
    3.6Describe Stream interface and Stream pipelinenew
    3.7Filter a collection by using lambda expressionsnew
    3.8Use method references with Streamsnew
    Section 4: Lambda Built-in Functional Interfaces
    4.1Use the built-in interfaces included in the java.util.function package such as Predicate, Consumer, Function, and Suppliernew
    4.2Develop code that uses primitive versions of functional interfacesnew
    4.3Develop code that uses binary versions of functional interfacesnew
    4.4Develop code that uses the UnaryOperator interfacenew
    Section 5:Java Stream API
    5.1Develop code to extract data from an object using peek() and map() methods including primitive versions of the map() methodnew
    5.2Search for data by using search methods of the Stream classes including findFirst, findAny, anyMatch, allMatch, noneMatchnew
    5.3Develop code that uses the Optional classnew
    5.4Develop code that uses Stream data methods and calculation methodsnew
    5.5Sort a collection using Stream APInew
    5.6Save results to a collection using the collect method and group/partition data using the Collectors classnew
    5.7Use of merge() and flatMap() methods of the Stream APInew
    Section 6: Exceptions and Assertions
    6.1Use try-catch and throw statements6.1
    6.2Use catch, multi-catch, and finally clauses6.2
    6.3Use Autoclose resources with a try-with-resources statement6.3
    6.4Create custom exceptions and Auto-closeable resources6.4
    6.5Test invariants by using assertions6.5
    Section 7: 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 Durationnew
    7.2Work with dates and times across timezones and manage changes resulting from daylight savings including Format date and times valuesnew
    7.3Define and create and manage date-based and time-based events using Instant, Period, Duration, and TemporalUnitnew
    Section 8: Java I/O Fundamentals
    8.1Read and write data from the console7.1
    8.2Use BufferedReader, BufferedWriter, File, FileReader, FileWriter, FileInputStream, FileOutputStream, ObjectOutputStream, ObjectInputStream, and PrintWriter in the package7.2
    Section 9: Java File I/O (NIO.2)
    9.1Use Path interface to operate on file and directory paths8.1
    9.2Use Files class to check, read, delete, copy, move, manage metadata of a file or directory8.2
    9.3Use Stream API with NIO.2new
    Section 10: Java Concurrency
    10.1Create worker threads using Runnable, Callable and use an ExecutorService to concurrently execute tasks10.1, 11.3
    10.2Identify potential threading problems among deadlock, starvation, livelock, and race conditions10.2
    10.3Use synchronized keyword and java.util.concurrent.atomic package to control the order of thread execution10.3
    10.4Use java.util.concurrent collections and classes including CyclicBarrier and CopyOnWriteArrayList11.1
    10.5Use parallel Fork/Join Framework11.4
    10.6Use parallel Streams including reduction, decomposition, merging processes, pipelines and performancenew
    Section 11: 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 implementations9.1
    11.2Identify the components required to connect to a database using the DriverManager class including the JDBC URL9.2
    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 connections9.3
    Section 12: Localization
    12.1Describe the advantages of localizing an application12.1
    12.2Read and set the locale by using the Locale object12.1
    12.3Create and read a Properties file12.3
    12.4Build a resource bundle for each locale and load a resource bundle in an application12.3
    Don't get me started about those stupid light bulbs.
      Bookmark Topic Watch Topic
    • New Topic