Introduction to Java 8 Using Eclipse Training
Request a Class


COURSE COST: $2495.00

COURSE TIMES: 9:00am - 4:30pm

Printable version of this course


This course introduces the Java programming language and how to develop Java applications using Eclipse. Students learn the syntax of the Java programming language, object-oriented programming using Java, exception handling, generics, collections, and file input/output (I/O). During the course, students will develop and test Java applications using Eclipse.

This course covers Java SE 8

Throughout the course students will also work on a "project" which develops a complex Java application by applying principles learned to meet changing application requirements. This project is intended to simulate the programming environment they would encounter in real-world projects by providing application requirements and challenging the student to write Java code to meet those requirements.


This course is intended for programmers who are interested in adding Java to their skills. It is beneficial but not required for students to be familiar with object-oriented principles and the concept of object-oriented programming.


Course Cost listed does not include the cost of courseware. Course is subject to a minimum enrollment to run. Course may run virtually as a Virtual Instructor-Led (VILT) class if the minimum enrollment is not met. For more information, please contact 207-775-0244 or email:


Java basics
Basic introduction to Eclipse
Branching and looping
Advanced class concepts
Collections and Generics
Stream I/O

After completing this course, the student should be able to:
Apply OOP principles
Design OO applications using abstraction, encapsulation, modularity and hierarchy
Use Java exceptions to guarantee graceful error recovery for your application
Create and use inner classes in your program to make them concise and clear
Do input/output using Java
Create servlets and JavaServer Pages
Use Eclipse for Java application development

Chapter 1 - Overview of Java
History Of Java
Benefits Of Java, What Is Java?
What's This "Virtual Machine"?
Comparison to Other Languages
Java Programs
Basic Java Development Tools
Java Editions
Example – HelloWorld
Java Classes
Main Methods

Chapter 2 - Java Tools in Eclipse
Eclipse Platform, Eclipse Workspace
Perspectives, Views & Editors
Basic Operations with Eclipse Views and Perspectives
The Java Perspective
The Debug Perspective
Navigator View
Package Explorer
Outline View, Problems View
Eclipse Preferences, Build and Validation
Code Completion, Templates and Snippets
Searching, Configure Compiler Class Path
JRE Switching

Chapter 3 - Basic Object Concepts
What Is An Object?
State, Behavior
Encapsulation and Examples
Classes vs. Objects
Benefits Of Objects

Chapter 4 - Basic Java Syntax
Declaring And Initializing Variables
Keywords, Coding Tips – Variables
Primitive Data Types, Logical - boolean
Textual - char and String
Integral - byte, short, int, long
Floating Point - float and double
Java 7 – Changes in Numeric Literals
Strings, Creating Strings, White Space, Comments
Coding Tips - Comments, Java Statements
Coding Tips - Statements, Scope of a Variable
Scanner Class

Chapter 5 - Operations and Making Decisions
Operator Categories, Special Situations, Binary Operators
Integer Division, Numeric Promotion
Type Conversion Of Primitive Types, Unary Operators
Relational Operators, Logical Operators
"Short Circuited" Operators, Bitwise Operators
Shift Operators, Overflow And Underflow
Assignment Operators, Ternary Operator
Calculation Errors, Operator Precedence
Precedence Examples, Combining Strings
Coding Tips - Operators, Control Flow Statements
'if' Statement, 'if…else' Statement
Nested Statements, Coding Tips - if & if-else

Chapter 6 - Using Classes and Objects
Objects, Instances, And Classes
What Are Classes?
Working With Classes And Objects
Instance Methods
Object References
Null Values
String Operations
"Wrapper" Classes

Chapter 7 - Writing Classes
Why Define Your Own Classes?
Encapsulation, Elements Of A Class
Defining Classes
Coding Tips - Class Definitions
Fields, Defining Fields, Coding Tips - Fields
Methods, Defining Methods
Passing Parameters
Overloading Methods, Coding Tips - Methods
Local Variables vs. Instance Variables
Example - Defining a Class, Fields
Example - Defining a Method
Example - Calling a Method

Chapter 8 - Controlling Code Access and Code Organization
Controlling Access, Data Hiding
Encapsulation, JavaBeans
Packages, Naming Packages
Declaring Packages In Classes, Problems Solved With Packages
Package Access, Example - Access Modifiers
Import Statement
Using Classes From Packages
Coding Tips - Import Statements
Correlation To File Structure
Class Path
Java Core Packages
Java API Documentation

Chapter 9 - Constructors and Class Members
Constructors, Default Constructor
Multiple Constructors, Defining Constructors
Example - Calling Constructors, "Good" Constructors
'this' Keyword, Using 'this' to Call a Constructor
Using 'this' to Set a Field, Class Members
Examples Of Class Members, Comparison With Instance Members
Use Of Class Variables, Static Class Methods
Use Of Class Methods, The Math Class
Main Method And Command Line Arguments
Declaring Constants
Coding Tips - Class Members
Useful Standard Class Members

Chapter 10 - Advanced Control Structures
'switch' Statement, Example - switch
Switch "Fall Through", Using switch "Fall Through" for Multiple Options
Java 7 – Strings in switch Statement
'for' Loop, Example - for, 'while' Loop
Example - while, 'do…while' Loop
Example - do while, Break Statement
Example - break, Labeled Statements
Example - Labeled break
Continue Statement
Example - continue
Example - Labeled continue
Coding Tips - Control Structures

Chapter 11 - Inheritance
Inheritance Is…
Inheritance Examples, Declaring Inheritance
Inheritance Hierarchy, Access Modifiers Revisited
Inherited Members, Instances Of A Subclass
Example Of Inheritance, Role In Reuse,
Overriding Methods, @Override Annotation
The super Keyword
Example - super Keyword
Problems with Constructors
Limiting Subclasses
Calling Methods in Constructors
The Object Class

Chapter 12 - Arrays
Declaring Arrays
Populating Arrays, Accessing Arrays
Arrays of Objects, Array Length
Coding Tips - Arrays, Array References
Multidimensional Arrays
Arrays Of Arrays
Copying Arrays
For-Each loop
Command Line Arguments
Variable Arguments
Variable Arguments Example

Chapter 13 - Commonly Overridden Methods
Overriding Methods
Using Eclipse to Override Methods
toString(), toString() in Object
Overriding toString(), Comparing Objects
Using == vs. equals(..)
Overriding equals(..)
Complex Comparisons
equals(..) Example
Overriding hashCode()
hashCode() Example
Generating equals and hashCode

Chapter 14 - Exceptions
What is an Exception
Benefits, The java.lang.Exception Class
How to Work With Exceptions, Example Exception Handling
The try-catch-finally Statement
Flow of Program Control, Exception Hierarchy
Checked Exceptions, Unchecked Exceptions
Coding Tips - Exception Types, Catching Subclass Exceptions
Java 7 – Catching Multiple Exceptions
Specifying Thrown Exceptions, Rethrowing Exceptions
Java 7 – Rethrowing Exceptions, Chaining Exceptions
Creating your Own Exception, Java 7 – try-with-resources Statement
Java 7 – Suppressed Exceptions in try-with-resources

Chapter 15 - Interfaces and Polymorphism
Casting Objects, The instanceof Operator
Abstract Classes, Abstract Class – An Example
Interface, Interface – An Example
Comparable Interface, Comparable Example
Java 8 – Default Methods and Example
Java 8 – Static Methods
Coding Tips - Superclass or Abstract Class/Interface?
Coding Tips – Abstract Class or Interface
Polymorphism, Conditions for Polymorphism
Coding Tips - Leveraging Polymorphism
Covariant Return Types
Covariant Return Types – An Example

Chapter 16 - Useful Java Classes
Java Logging API, Control Flow of Logging
Logging Levels, Loggers, Example, Handlers
Logging Formatters & Log Manager
Logging Configuration File
Example Logging Configuration File, Logging Filters
java.lang.StringBuilder, java.util.StringTokenizer
java.util.Arrays & java.util.Collections,
java.util.Random, Java Date and Time,
Local Date and Time
java.util.Date and java.time.Instant
Formatting Example

Chapter 17 - Collections and Generics
What are Collections?, Arrays vs. Collections
Main Collections Interfaces, java.util.Collection
Main Collection Methods, Sets, java.util.List
java.util.Queue, Iteration on a Collection
Iterator vs. For-Each Loop, Maps, java.util.Map
Other Maps, Collections Implementations
Abstract Implementations
Choosing a Collection Type
Generics and Collections
Generic Collection Example
Collections and Primitive Types
Generic Diamond Operator

Chapter 18 - Introduction to Lambda Expressions
Functional Interface, Anonymous Inner Class (AIC)
Downside of AIC, Lambda Expressions and Syntax
Method Reference
Benefits of Lambda Expressions – An Example
Initial Version, Refactor Criteria Into Method
Predicate Interface
Using a Predicate
Implement as Separate Class
Implement as AIC
Use Lambda Expressions
Reuse Lambda Expressions

Chapter 19 - Input and Output
Overview of Java Input/Output
The File Class, File Example
Java 7 - The java.nio.file.Path Interface
Serialization and Object State
Avoiding Serialization Problems
serialVersionUID, Options for File Input/Output
Streams, Input Stream, Output Stream
"Chained" Streams, RandomAccessFile
Java 7 – try-with-resources Statement, Using Streams - Write and Red Example
Reader and Writer, Using Readers and Writers - Write and Read Example
Using Readers and Writers - Scanner Read Example
NIO Channels and Buffers

Chapter 20 - Other Java Concepts
Enumerated Types and Example
Assertions, When to use Assertions
Assertions Examples, Enabling Assertions
JVM Storage Areas
Java Heap Space
Heap Size Limits
Garbage Collection Basics
Allocation Failure (AF)
Memory Leak
Distributing Java Code with JARs