Fellow Ranchers,
Oracle has updated the exam topics for the OCP
Java SE 7 Programmer II exam, by adding more details to it. The following list includes all the exam topics, with the updated ones in
boldface:
1. Java Class Design
1.1 Use access modifiers: private, protected, and public
1.2 Override methods
1.3 Overload constructors and methods
1.4 Use the instanceof operator and casting
1.5 Use virtual method invocation
1.6 Override the hashCode, equals, and toString methods from the Object class to improve the functionality of your class.
1.7 Use package and import statements
2. Advanced Class Design
2.1 Identify when and how to apply abstract classes
2.2 Construct abstract Java classes and subclasses
2.3 Use the static and final keywords
2.4 Create top-level and nested classes
2.5 Use enumerated types
3. Object-Oriented Design Principles
3.1 Write code that declares, implements and/or extends interfaces
3.2 Choose between interface inheritance and class inheritance
3.3 Apply cohesion, low-coupling, IS-A, and HAS-A principles
3.4 Apply object composition principles (including has-a relationships)
3.5 Design a class using a Singleton design
pattern
3.6 Write code to implement the Data Access Object (DAO) pattern
3.7 Design and create objects using a factory pattern
4. Generics and Collections
4.1 Create a generic class
4.2 Use the diamond for type inference
4.3 Analyze the interoperability of collections that use raw types and generic types
4.4 Use wrapper classes, autoboxing and unboxing
4.5 Create and use List, Set and Deque implementations
4.6 Create and use Map implementations
4.7 Use java.util.Comparator and java.lang.Comparable
4.8 Sort and search arrays and lists
5.
String Processing
5.1 Search, parse and build strings (including Scanner, StringTokenizer, StringBuilder, String and Formatter)
5.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, [], ().
5.3 Format strings using the formatting parameters: %b, %c, %d, %f, and %s in format strings.
6. Exceptions and Assertions
6.1 Use throw and throws statements
6.2 Develop code that handles multiple Exception types in a single catch block
6.3 Develop code that uses try-with-resources statements (including using classes that implement the AutoCloseable interface)
6.4 Create custom exceptions
6.5
Test invariants by using assertions
7. Java I/O Fundamentals
7.1 Read and write data from the console
7.2 Use streams to read from and write to files by using classes in the java.io package (including BufferedReader, BufferedWriter, File, FileReader, FileWriter, DataReader, ObjectOutputStream, ObjectInputStream, and PrintWriter)
8. Java File I/O (NIO.2)
8.1 Operate on file and directory paths with the Path class
8.2 Check, delete, copy, or move a file or directory with the Files class
8.3 Read and change file and directory attributes, focusing on the BasicFileAttributes, DosFileAttributes, and PosixFileAttributes interfaces
8.4 Recursively access a directory tree using the DirectoryStream and FileVisitor interfaces
8.5 Find a file with the PathMatcher interface
8.6 Watch a directory for changes with the WatchService interface
9. Building Database Applications with
JDBC
9.1 Describe the interfaces that make up the core of the JDBC API (including the Driver, Connection, Statement, and ResultSet interfaces and their relationship to provider implementations)
9.2 Identify the components required to connect to a database using the DriverManager class (including the jdbc URL)
9.3 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)
9.4 Use JDBC transactions (including disabling auto-commit mode, committing and rolling back transactions, and setting and rolling back to savepoints)
9.5 Construct and use RowSet objects using the RowSetProvider class and the RowSetFactory interface
9.6 Create and use PreparedStatement and CallableStatement objects
10. Threads
10.1 Create and use the
Thread class and the Runnable interface
10.2 Manage and control thread lifecycle
10.3 Synchronize thread access to shared data
10.4 Identify code that may not execute correctly in a multi-threaded environment.
11. Concurrency
11.1 Use collections from the java.util.concurrent package with a focus on the advantages over and differences from the traditional java.util collections.
11.2 Use Lock, ReadWriteLock, and ReentrantLock classes in the java.util.concurrent.locks package to support lock-free thread-safe programming on single variables.
11.3 Use Executor, ExecutorService, Executors, Callable, and Future to execute tasks using thread pools.
11.4 Use the parallel Fork/Join Framework
12. Localization
12.1 Read and set the locale by using the Locale object
12.2 Build a resource bundle for each locale
12.3 Call a resource bundle from an application
12.4 Format dates, numbers, and currency values for localization with the NumberFormat and DateFormat classes (including number format patterns)
12.5 Describe the advantages of localizing an application
12.6 Define a locale using language and country codes
For your information, here's the list of earlier exam topics:
1.Java Class Design
1.1 Use access modifiers: private, protected, and public
1.2 Override methods
1.3 Overload constructors and other methods appropriately
1.4 Use the instanceof operator and casting
1.5 Use virtual method invocation
1.6 Override methods from the Object class to i mprove the functionality of your class
1.7 Use package and import statements
2. Advanced Class Design
2.1 Identify when and how to apply abstract classes
2.2 Construct abstract Java classes and subclasses
2.3 Use the static and final keywords
2.4 Create top-level and nested classes
2.5 Use enumerated types
3.Object-Oriented Design Principles
3.1 Write code that declares, implements and/or extends interfaces
3.2 Choose between interface inheritance and class inheritance
3.3 Develop code that implements "is-a" and/or "has-a" relationships
3.4 Apply object composition principles
3.5 Design a class using the Singleton design pattern
3.6 Write code to implement the DAO pattern
3.7 Design and create objects using a factory, and use factories from the API
4. Generics and Collections
4.1 Create a generic class
4.2 Use the diamond syntax to create a collection
4.3 Analyze the interoperability of collections that use raw type and generic types
4.4 Use wrapper classes and autoboxing
4.5 Create and use a List, a Set and a Deque
4.6 Create and use a Map
4.7 Use java.util.Comparator and java.lang.Comparable
4.8 Sort and search arrays and lists
5.String Processing
5.1 Search, parse and build strings
5.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, [], ().
5.3 Format strings using the formatting parameters: %b, %c, %d, %f, and %s in format strings.
6. Exceptions and Assertions
6.1 Use throw and throws statements
6.2 Use the try statement with multi-catch, and finally clauses
6.3 Autoclose resources with a try-with-resources statement
6.4 Create custom exceptions
6.5 Test invariants by using assertions
7. Java I/O Fundamentals
7.1 Read and write data from the console
7.2 Use streams to read and write files
8. Java File I/O (NIO.2)
8.1 Use the Path class to operate on file and directory paths
8.2 Use the Files class to check, delete, copy, or move a file or directory
8.3 Read and change file and directory attributes
8.4 Recursively access a directory tree
8.5 Find a file by using the PathMatcher class
8.6 Watch a directory for changes by using WatchService
9. Building Database Applications with JDBC
9.1 Define the layout of the JDBC API
9.2 Connect to a database by using a JDBC driver
9.3 Update and query a database
9.4 Customize the transaction behavior of JDBC and commit transactions
9.5 Use the JDBC 4.1 RowSetProvider, RowSetFactory, and RowSet interfaces
10 Threads
10.1 Create and use the Thread class and the Runnable interface
10.2 Manage and control thread lifecycle
10.3 Synchronize thread access to shared data
10.4 Identify potential threading problems
11. Concurrency
11.1 Use java.util.concurrent collections
11.2 Apply atomic variables and locks
11.3 Use Executors and ThreadPools
11.4 Use the parallel Fork/Join Framework
12. Localization
12.1 Read and set the locale by using the Locale object
12.2 Build a resource bundle for each local
12.3 Load a resource bundle in an application
12.4 Format text for localization by using NumberFormat and DateFormat
Please check the modified exam topics before writing the exam.
With respect,
Mala