Skip to main content
Last updated August 30, 2012 14:21, by John Yeary

Java Certification Boot Camp Wiki

This boot camp project was part of the successful Oracle Certified Java Programmer Boot Camp run by the Greenville Java Users Group (GreenJUG), and sponsored by Blue Lotus Software, LLC.

The boot camp uses the SCJP Sun Certified Programmer for Java 6 Exam 310-065 book by Bert Bates and Kathy Sierra. The project is not associated with the authors, but we have found this to be a complete book on the topic. The lessons in this project are mostly aligned with the chapters in this book.

I added a logo created by the son of one of the boot camp attendees, and presenters. It is a SC "Hill Billy" Duke.

If you are going to upload any presentations, please ensure that they have a Creative Commons License CC BY or CC BY-SA attached to it.

All code submissions must be Apache 2.0 License.

The Oracle Certification Process for Java Certification has changed. Currently, the Java SE 7 certification is broken down into two parts: Oracle Certified Associate, Java SE 7 Programmer, and Oracle Certified Professional, Java SE 7 Programmer. This requires taking two separate exams to get the certification.

Java SE 7 Certification

Programmer I

Programmer II

Presentations can be downloaded from the Downloads section of the site.


1.0 Java Class Design

  • Use access modifiers: private, protected, and public
  • Override methods
  • Overload constructors and other methods appropriately
  • Use the instanceof operator and casting
  • Use virtual method invocation
  • Override methods from the Object class to improve the functionality of your class
  • Use package and import statements

2.0 Advanced Class Design

  • Identify when and how to apply abstract classes
  • Construct abstract Java classes and subclasses
  • Use the static and final keywords
  • Create top-level and nested classes
  • Use enumerated types

3.0 Object-Oriented Design Principles

  • Write code that declares, implements and/or extends interfaces
  • Choose between interface inheritance and class inheritance
  • Develop code that implements "is-a" and/or "has-a" relationships.
  • Apply object composition principles
  • Design a class using the Singleton design pattern
  • Write code to implement the DAO pattern
  • Design and create objects using a factory, and use factories from the API

4.0 Generics and Collections

  • Create a generic class
  • Use the diamond syntax to create a collection
  • Analyze the interoperability of collections that use raw type and generic types
  • Use wrapper classes 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

5.0 String Processing

  • Search, parse and build strings
  • 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, [], ().
  • Format strings using the formatting parameters: %b, %c, %d, %f, and %s in format strings.

6.0 Exceptions and Assertions

  • Use throw and throws statements
  • Use the try statement with multi-catch, and finally clauses
  • Autoclose resources with a try-with-resources statement
  • Create custom exceptions
  • Test invariants by using assertions

7.0 Java I/O Fundamentals

  • Read and write data from the console
  • Use streams to read and write files

8.0 Java File I/O (NIO.2)

  • Use the Path class to operate on file and directory paths
  • Use the Files class to check, delete, copy, or move a file or directory
  • Read and change file and directory attributes
  • Recursively access a directory tree
  • Find a file by using the PathMatcher class
  • Watch a directory for changes by using WatchService

9.0 Building Database Applications with JDBC

  • Define the layout of the JDBC API
  • Connect to a database by using a JDBC driver
  • Update and query a database
  • Customize the transaction behavior of JDBC and commit transactions
  • Use the JDBC 4.1 RowSetProvider, RowSetFactory, and RowSet interfaces

10.0 Threads

  • Create and use the Thread class and the Runnable interface
  • Manage and control thread lifecycle
  • Synchronize thread access to shared data
  • Identify potential threading problems

11.0 Concurrency

  • Use java.util.concurrent collections
  • Apply atomic variables and locks
  • Use Executors and ThreadPools
  • Use the parallel Fork/Join Framework

12.0 Localization

  • Read and set the locale by using the Locale object
  • Build a resource bundle for each local
  • Load a resource bundle in an application
  • Format text for localization by using NumberFormat and DateFormat

Please Confirm