OCPJP 7 Exam Objectives

Section 1: Java Class Design
  1. Use access modifiers: private, protected, and public
  2. Override methods
  3. Overload constructors and other methods appropriately
  4. Use the instanceof operator and casting
  5. Use virtual method invocation
  6. Override methods from the Object class to i mprove the functionality of your class
  7. Use package and import statements
Section 2: Advanced Class Design
  1. Identify when and how to apply abstract classes
  2. Construct abstract Java classes and subclasses
  3. Use the static and final keywords
  4. Create top-level and nested classes
  5. Use enumerated types
Section 3: Object-Oriented Design Principles
  1. Write code that declares, implements and/or extends interfaces
  2. Choose between interface inheritance and class inheritance
  3. Develop code that implements "is-a" and/or "has-a" relationships
  4. Apply object composition principles
  5. Design a class using the Singleton design pattern
  6. Write code to implement the DAO pattern
  7. Design and create objects using a factory, and use factories from the API
Section 4: Generics and Collections
  1. Create a generic class
  2. Use the diamond syntax to create a collection
  3. Analyze the interoperability of collections that use raw type and generic types
  4. Use wrapper classes and autoboxing
  5. Create and use a List, a Set and a Deque
  6. Create and use a Map
  7. Use java.util.Comparator and java.lang.Comparable
  8. Sort and search arrays and lists
Section 5: String Processing
  1. Search, parse and build strings
  2. Search, 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, [], ().
  3. Format strings using the formatting parameters: %b, %c, %d, %f, and %s in format strings.
Section 6: Exceptions and Assertions
  1. Use throw and throws statements
  2. Use the try statement with multi-catch, and finally clauses
  3. Autoclose resources with a try-with-resources statement
  4. Create custom exceptions
  5. Test invariants by using assertions
Section 7: Java I/O Fundamentals
  1. Read and write data from the console
  2. Use streams to read and write files
Section 8: Java File I/O (NIO.2)
  1. Use the Path class to operate on file and directory paths
  2. Use the Files class to check, delete, copy, or move a file or directory
  3. Read and change file and directory attributes
  4. Recursively access a directory tree
  5. Find a file by using the PathMatcher class
  6. Watch a directory for changes by using WatchService
Section 9: Building Database Applications with JDBC
  1. Define the layout of the JDBC API
  2. Connect to a database by using a JDBC driver
  3. Update and query a database
  4. Customize the transaction behavior of JDBC and commit transactions
  5. Use the JDBC 4.1 RowSetProvider, RowSetFactory, and RowSet interfaces
Section 10: Threads
  1. Create and use the Thread class and the Runnable interface
  2. Manage and control thread lifecycle
  3. Synchronize thread access to shared data
  4. Identify potential threading problems
Section 11: Concurrency
  1. Use java.util.concurrent collections
  2. Apply atomic variables and locks
  3. Use Executors and ThreadPools
  4. Use the parallel Fork/Join Framework
Section 12:Localization
  1. Read and set the locale by using the Locale object
  2. Build a resource bundle for each local
  3. Load a resource bundle in an application
  4. Format text for localization by using NumberFormat and DateFormat