Course 430:
Programming Java

(5 days)


Course Description

This course aims to equip attendees with the knowledge and core skills required to write effective Java programs. With more than half the class time spent doing exercises, the course is highly hands-on, implementing a learning-by-doing approach to teaching the Java language.

Learning Objectives

After successfully completing this course, students will be able to:

  • Write effective, well structured, clean Java programs
  • Define classes and instantiate objects
  • Effectively use the core language constructs for decision making and iteration
  • Read and write data to/from files
  • Work with core collections
  • Handle exceptions in an appropriate manner
  • Store and retrieve data from relational databases
  • Use lambda expressions effectively
  • Define and using functional interfaces

Who Should Attend

This course is designed for attendees who wish to acquire essential hands-on development skills in one of the most popular languages in the world—Java.


Students should have a working knowledge in some procedural or scripting language. Alternatively, students should have taken ROI Course 400: Thinking Like a Programmer. Although not required, prior exposure to object-oriented concepts will prove helpful.

Course Outline

Introducing Java Programming

  • Structure of a Java Program
  • Compiling and Executing Java Programs
  • Working with an Integrated Development Environment
  • Leveraging Test-Driven Development (TDD)
  • Refactoring Towards Better Code

Core Java Syntax

  • Declaring, Initializing, and Using Variables
  • Operators and Operator Precedence
  • Making Decisions
  • Conditionals and Loops
  • Declaring and Using Arrays
  • Using Packages and Modules

Object–Oriented Programming with Java

  • Introducing Object-Oriented Programming
  • Encapsulation, Inheritance, and Polymorphism
  • Effective Class Design
  • Instantiating Objects from Classes
  • Working with Java Libraries

Defining Classes

  • Defining a Class
  • Adding Methods to a Class
  • Method Overloading
  • Working with Constructors
  • Making Use of Inheritance
  • Introducing Interfaces
  • Implementing Interfaces
  • Method Overriding

Java Input Output

  • Structure of Java I/O Library
  • Reading and Writing Text Files
  • Reading and Writing Streams
  • Object Serialization
  • Exception Handling
  • NIO.2

Java Collections

  • Overview of Java Collections
  • List, Set, Map, and Queue
  • Iterators and Iterating over Collections

Java Database Access

  • The JDBC API
  • Executing SQL Statements from Java
  • Transaction Handling

Java 8 Lambdas

  • What Is a Lambda?
  • Formal Syntax for Lambda Expressions
  • Lambda Expression Simple Syntax
  • Lambda Expressions that Return a Value
  • Lambda Expressions with Multiple Arguments
  • Lambda Expressions and Scope
  • Common Usage Scenarios

Method Enhancements

  • Method References
  • Constructor References
  • Default Methods
  • Static Methods in Interfaces

Functional Interfaces

  • Function
  • Predicate
  • Consumer
  • Supplier
  • BinaryOperator
  • Additional Interfaces


  • Sequential vs. Parallel Streams
  • Immediate vs. Terminal Operations
  • Lazy Evaluation
  • Immediate and Terminal Operations in Detail
  • Primitive Specialized Streams

Please Contact Your ROI Representative to Discuss Course Tailoring!