Java SE 12 Programming

This is our mainstream course for developers wishing to get up to speed with Java. You will learn how to implement object-oriented applications using Java, and how to make use of common APIs in the Java SE library. You’ll also get an introduction to modules, a major new feature that will impact the way we all write Java code going forward.

You can use this course as part of your preparation for Oracle exam 1Z0-815, Java SE 11 Programmer I.


5 days



  • At least 6 months programming experience
  • Familiarity with OO concepts would be an advantage

What you'll learn

  • Writing clean Java code
  • Implementing object-oriented solutions in Java
  • Using core Java SE classes
  • Handling exceptions and assertions
  • Working with files and databases
  • Using multithreading and concurrency
  • Introduction to modules

Course details

Getting Started with Java

  • Java goals and principles
  • Installing and using the Java SE
  • JAR files
  • Using an IDE

Java Language Fundamentals

  • Basic syntax rules
  • Defining classes
  • Defining and using packages
  • Declaring and using variables
  • Useful Java classes
  • Wrapper classes

Operators and Flow Control

  • Survey of common operators
  • Decision making
  • Looping constructs
  • for-each style loops

Defining and Using Classes

  • Essential concepts
  • Defining a class
  • Creating and using objects
  • Initialization
  • Using the static keyword


  • Declaring and using arrays
  • Traversing arrays
  • Using the Arrays class
  • Multi-dimensional arrays

Additional Language Features

  • Autoboxing / unboxing
  • Varargs
  • Type-safe enumerations
  • Static imports

Useful Java SE Classes and Techniques

  • The Console class
  • The StringBuilder class
  • Formatting techniques
  • Regular expressions


  • Overview of inheritance
  • Defining superclasses and subclasses
  • Polymorphism
  • Abstract classes and methods
  • Final classes and methods


  • Overview of interfaces
  • Defining and implementing interfaces
  • Using interfaces in client code

Collections and Generics

  • Overview of collections and generics
  • The need for generics
  • Using collections
  • Defining generic classes
  • Defining generic methods

Exceptions and Assertions

  • Overview of exception handling
  • Throwing and catching exceptions
  • Standard exception classes
  • Defining new exception classes
  • Working with assertions

File Handling

  • Overview of working with files
  • Reading and writing text files
  • Reading and writing binary files
  • Serialization


  • Creating multiple threads
  • Synchronizing threads
  • Synchronization classes
  • Concurrency API

Accessing Databases using JDBC

  • JDBC drivers and connections
  • Statements and results
  • Obtaining metadata
  • Additional techniques

Working with Modules

  • Overview of Java modules
  • Understanding how the JDK is modularized
  • Declaring modules
  • Using other modules