EC22 - Java SE Programming Workshop - 4 Days

Course Description

This course covers all major aspects of programming up to and including Java SE 8 using a choice of IDE (Integrated Development Environment).

It is aimed at programmers who are already able to code simple Java applications and wish to broaden their knowledge with a greater understanding of the Java API.


Pre-requisites

An understanding of programming with Java or C++ is required. Students must be able to code simple Applications and Classes.

Knowledge of this can be gained by attending our Java Primer course EC21.


Objectives

The aim of this course is to give students a fully rounded general knowledge of programming with Java.

Whereas the Java Primer (EC21) course provides basic skills, this course moves onto more advanced topics including Collections, Generics, Threads, I/O, and Networking.

During the course the student will write many classes ensuring that the statements taught are fully understood and practical experience is gained.

The course is taught using a choice of IDE (Integrated Development Environment). The skills needed to use this software are presented as part of the course.

On completion of this course the student will be able to:

  • Take advantage of and understand Interfaces
  • Use the Collections Framework
  • Understand which type of collection to use for a specific purpose
  • Sort Objects using Comparable and Comparator interfaces
  • Create and handle Exceptions
  • Code custom Exception classes
  • Use the Java Input/Output classes
  • Understand and use Serialization to achieve persistence
  • Understand multi-threading and synchronization and use the various techniques available to create separate threads
  • Create socket based applications using the Networking classes


Environment

Development will be performed using:

  • Eclipse
  • IntelliJ
  • NetBeans
  • JBuilder


Customisation

For on-site courses (i.e. at your premises), we are more than happy to tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course.


Course Details

ABSTRACT CLASSES AND INTERFACES
Abstract Classes and Methods
Interfaces
An Example Without Using Interfaces
Same Example Using Casting
Defining an Interface
Implementing an Interface
Same Example Using Interfaces
Interfaces with Default Methods - Java 8
Functional Interfaces - Java 8

JAVA COLLECTIONS
Introduction
Using Collection Classes - Lists
Iterator, Enumeration and For-Each
Using Collection Classes - Maps
Generics
Collection Interfaces and Implementations
Summary Of Collection Implementations (Classes)
List Implementations
Map Implementations
SET IMPLEMENTATIONS
Queue and Deque
Stacks
Properties
Preferences
Collection Utilities
Sets - Set Methods
SortedSet Methods
Lists - List Methods
ArrayList Methods
LinkedList Methods
Vector Methods
Maps - Map Methods
SortedMap Methods
Hashtable Methods
Streams - Java 8
Parallel Streams - Java 8
Map Enhancements - Java 8

SORTING OBJECTS
Sorting Objects
The Comparable Interface
Comparators
More Ways To Sort Objects

INNER CLASSES, ANONYMOUS CLASSES AND LAMBDA EXPRESSIONS
xxRegularxx Inner Classes
Referencing the Outer and Inner classes from within the Inner class
Example of xxRegularxx Inner Class In Use
Method-Local Inner Classes
Anonymous Inner classes
Implementing Interfaces with Anonymous Inner Classes
Anonymous Inner Classes within Method calls
Lambda Expressions (Java 8)
Sorting Using the Comparator Interface - pre Java 8
Sorting Using the Comparator Interface - Lamba
Using Method References - Java 8
Functional Interfaces - Java 8
Built-In Functional Interfaces
Built-In Functional Interfaces - Functions
Built-In Functional Interfaces - Predicates
Other Built-In Functional Interfaces

ERROR HANDLING
Java Exceptions
Error and Exception Classes
Try / Catch Processing
The Finally Block
Java 7 Catch Blocks
Passing Exceptions Up the Stack – the Throws clause
The Throw Statement
User Defined Exceptions
Exceptions And Object Hierarchies

JAVA I/O
Class java.io.File
Input and Output Streams
Classes to Read / Write
NIO and Buffers
Reading from Files
close()
Reading from Files Using a Scanner
Reading from Files Using NIO
Writing to Files
Reading Data
Writing Data
Reading from System Input
Standard Output Stream - System.out
Serialization - Persistence of Objects

JAVA7 AND NIO2
Try-With-Resources
NIO2
Path
Files
FilesSystems and FileStore
File Change Notification

JUNIT INTRODUCTION
JUnit Example
JUnit assert Methods
Testing for exceptions
Testing Collections

JUNIT 4
Testing with JUnit4
Other JUnit 4 Features

JAVADOC
What Does Javadoc Generate?
Javadoc Tags
Where Can Tags Be Used?


Course Format

Practical sessions make up a large part of the course, allowing delegates to demonstrate and reinforce the lectures given. During these sessions the delegate will build a complete application, gaining in complexity throughout.

Examples are used extensively, ranging from simple code snippets to full applications with complete 'real world' functionality. These are supplied at the start of the course and it is encouraged that the delegates execute and 'experiment' with these under the instructor's guidance as they are introduced.

These examples are available to take away, along with the delegate's own work.

The comprehensive Student Guide supplied is fully indexed serving as a useful reference tool long after the course has finished. Delegates will also be able to access a free help-line with technical questions relating to topics covered on the course.


Course Enquiry