As I have discussed in the previous post, I have collected all the topics that we should get prepared for getting certified as Oracle Certified Professional Java SE7 Programmer II. All the topics of OCA are included in the OCP certification plus some more additional topics.

Following are the list of the topics and objectives for the preparation.

Oracle Certified Professional Java SE7 Programmer II (1Z0-804)

  1. Java Basics
    • Define the scope of variables
    • Define the structure of the Java class
    • Create executable Java applications with main method
    • Import other Java packages to make them accessible in your code
  2. Working with Java Date Types
    • Declare and initialize variables
    • Differentiate between object reference variables and primitive variables
    • Read or write to object fields
    • Explain an object’s lifecycle (creation, dereference and garbage collection)
    • Call methods on objects
    • Manipulate data using the StringBuilder class and its methods
    • Create and manipulate Strings
  3. Using Operators and Decision Constructs
    • Use Java operators
    • Use paratheses to override operator precedence
    • Test equality between Strings and other objects using == and equals()
    • Create if and if/else constructs
    • Use a switch statement
  4. Creating and Using Arrays
    • Declare, instantiate, initialize and use a one-dimensional array
    • Declare, instantiate, initialize and use multi-dimensional array
    • Declare and use an ArrayList
  5. Using Loop Constructs
    • Create and use while loops
    • Create and use for loops including and enhanced for loop
    • Create and use do/while loops
    • Compare loop constructs
    • Use break and continue
  6. Working with Methods and Encapsulation
    • Create methods with arguments and return values
    • Apply the static keyword to methods and fields
    • Create an overloaded method
    • Differentiate between default and user-defined constructors
    • Create and overload constructors
    • Apply access modifiers
    • Apply Encapsulation principles to a class
    • Determine the effect upon object references and primitive values when they are passed into methods that change the values.
  7. Working with Inheritance
    • Implement inheritance
    • Develop code that demonstrated the use of the polymorphism
    • Differentiate between the type of a reference and the type of an object
    • Determine when casting is necessary
    • Use Super and this to access objects and constructors
    • Use abstract classes and interfaces
  8. Handling Exceptions
    • Differentiate among checked exceptions, unchecked exceptions, and errors
    • Create a try-catch block and determine how exceptions alter normal program flow
    • Describe what exceptions are used for in Java
    • Invoke a method that throws an exception
    • Recognize common exception classes and categories
  9. Java Class Design
    • Use access modifiers : private, protected and public
    • Override methods
    • Overload constructors and methods
    • Use the instanceof operator and casting
    • Use Virtual method invocation
    • Override the hashcode, equals and toString methods from the Object class to improve the functionality of class
    • Use package and import statements
  10. Advanced Class Design
    • Identify when and how to apply abstract class
    • Construct abstract Java classes and subclasses
    • Use the static and final keywords
    • Create top-level and nested classes
    • Use enumerated types
  11. Object-Oriented Design Principles
    • Write Code that declares, implements and extends interfaces
    • Choose between interface inheritance and class inheritance
    • Apply cohesion, low coupling, IS-A and HAS-A principles
    • Apply object composition principles (including HAS-A relationships)
    • Design a class using a singleton design pattern
    • Write code to implement the Data Access Object
    • Design and create objects using a factory and use factories from the API
  12. Generics and Collections
    • Create a generic class
    • Use the diamond syntax to create a collection
    • Analyze the interoperability of collections tht use and generic types
    • Use wrapper class and autoboxing
    • Create and use a List, a Set and a Deque
    • Create and use a Map
    • Use java.util.Comparator and java.lang.Comparable
    • Sort and search arrays and lists.
  13. String Processing
    • Search, parse and build strings (Scanner, StringTokenizer, StringBuilder, String, Formatter, etc.,)
    • Search, parse and replace strings by using regular expressions, using expression patterns for matching.
    • Format Strings using the formatting parameters.
  14. Exceptions and Assertions
    • Use throw and throws statements
    • Develop code that handles multiple exception types in a single catch block
    • Develop code that uses try-with-resources statements (including classes that implement the AutoCloseble interface)
    • Create custom exceptions
    • Test invariants by using assertions
  15. Java I/O Fundamentals
    • Read and write data from the console
    • Use streams to read and write to files using the classes in java.io.package, including BufferedReader, BufferedReader, File, FileReader, FileWriter, DataInputStream, DataOutputStream, ObjectOutputStream, ObjectInputStream and PrintWriter
  16. Java File I/O (NIO.2)
    • Operate on file and directory paths with the Path class
    • Check, delete, copy or move a file or directory with the FIle class
    • Read and change file and directory attributes, focusing on the BasicFileAttributes, DosFIleAttributes, and PosixFIleAttributes interface
    • Recursively access a directory tree using the DirectoryStream and File Visitor interfaces
    • Find a file with the PathMatcher interface
    • Watch a directory for changes with the WatchService interface
  17. Building Database Applications with JDBC
    • Describe the interfaces that make up the core of the JDBC API (including the Driver, Connection, Statement, and ResultSet interfaces and their relationships to provide implementation)
    • Identify the components required to connect to a database using the DriverManager class (including JDBC URL)
    • Submit queries and read results from the database (including creating Statements, returning result sets, iterating through the results, and properly closing result sets, statements, and connections)
    • Use JDBC transactions (including disabling auto-commit mode, committing and rolling back transactions, and setting and rolling back to savepoints)
    • Construct and use RowSet objects using the RowSetProvider class and RowSetFactory interface)
    • Create and user PrepareStatement and CallableStatement objects
  18. Threads
    • Create and use the Thread class and Runnable interface
    • Manage and control thread lifecycle
    • Synchronise thread access to shared data
    • Identify code that may not execute correctly in a multithread environment
  19. Concurrency
    • Use collections from the java.util.concurrent package with a focus on the advantages over and differences from the traditional java.util.collections
    • Use Lock, ReadWriteLock, and ReentrantLock classes in the java.util.concurrent.locks package to support lock-free thread-safe programming on single variables
    • Use Execution, Executors, Callable, and Future to execute tasks using thread pools
    • Use the parallel Fork/Join Framework
  20. Localization
    • Read and set the locale using the Locale object
    • Build a resource bundle for each locale
    • Call a resource bundle from an application
    • Format dates, numbers, and currency values for localization with the NumberFormat and DateFormat classes (including number format patterns)
    • Define a locale using language and country codes