Course Description

This 5-day Java Programming Introduction training course provides an intensive and hands-on introduction to the Java programming platform. The course emphasises becoming productive quickly as a Java application developer. The course quickly covers the Java language syntax and then moves into the object-oriented features of the language.

Students will then use several of the provided Java Platform API packages, such as I/O streams, collections, Swing GUI programming, threads, and accessing a database with JDBC. The course concludes with a chapter on performance tuning with hints and best practices for writing efficient applications. Appendices on sockets, regular expressions and J2EE are also available for further study.

Pre-requisites

Knowledge of a programming language. Knowledge of C or C++ is not a specific requirement.

Who is this course for?

This course is designed for experienced software developers who are moving to object-oriented programming using the Java platform.

Further Training

After some further on-the-job programming experience with the Java platform, we also recommend students attend our Java Programming Advanced training course to gain higher-level skills in the usage of Java.

Course Content

Getting Started with Java SE

What is Java?
How to Get Java
A First Java Program
Compiling & Interpreting Applications
The JDK Directory Structure

Language Fundamentals

A Java Program
If Statements
Switch Statements
Loop Statements
Syntax Details
Primitive Datatypes
Variables
Expressions in Java
Strings
Arrays
Enhanced for Loop

Objects and Classes

Defining a Class
Creating an Object
Instance Data & Class Data
Methods
Constructors
Access Modifiers
Encapsulation

Using Java Objects

Printing to the Console
printf() Format Strings
StringBuilder and StringBuffer
Methods and Messages
toString()
Parameter Passing
Comparing and Identifying Objects
Destroying Objects
Using the Primitive-Type Wrapper Classes
Autoboxing

Inheritance in Java

Inheritance
Inheritance in Java
Casting
Method Overriding
Polymorphism
super
The Object Class

Advanced Inheritance and Language Constructs

Enumerated Types – Pre-Java 5.0
Enumerated Types Today
More Enumerated Types
Abstract Classes
Interfaces
Using Interfaces
Comparable
Collections
Generics

Packages

Packages
The import Statement
Static Imports
CLASSPATH and Import
Defining Packages
Package Scope

Exception Handling

Exceptions Overview
Catching Exceptions
The finally Block
Exception Methods
Declaring Exceptions
Defining and Throwing Exceptions
Errors and Runtime Exceptions
Assertions

Input/Output Streams

Overview of Streams
Bytes vs. Characters
Converting Byte Streams to Character Streams
File Object
Binary Input & Output
PrintWriter Class
Reading and Writing Objects
Basic and Filtered Streams

Core Collection Classes

The Collections Framework
The Set Interface
Set Implementation Classes
The List Interface
List Implementation Classes
The Queue Interface
Queue Implementation Classes
The Map Interface
Map Implementation Classes

Collection Sorting and Tuning

Using Java 5.0 Features with Collections
Sorting with Comparable
Sorting with Comparator
Sorting Lists and Arrays
Collections Utility Methods
Tuning ArrayList
Tuning HashMap and HashSet

Inner Classes

Inner Classes
Member Classes
Local Classes
Anonymous Classes
Instance Initializers
Static Nested Classes

Introduction to Swing

AWT and Swing
Displaying a Window
GUI Programming in Java
Handling Events
Arranging Components
A Scrollable Component
Configuring Components
Menus
Using the JfileChooser

Swing Events and Layout Managers

The Java Event Delegation Model
Action Events
List Selection Events
Mouse Events
Layout Managers
BorderLayout
FlowLayout
GridLayout
BoxLayout
Box
JTabbedPane

Introduction to JDBC

The JDBC Connectivity Model
Database Programming
Connecting to the Database
Creating a SQL Query
Getting the Results
Updating Database Data
Finishing Up

JDBC SQL Programming

Error Checking & SQL Exception Class
The SQLWarning Class
JDBC Types
Executing SQL Queries
ResultSetMetaData
Executing SQL Updates
Using a PreparedStatement
Parameterized Statements
Stored Procedures
Transaction Management

Introduction to Threads

Non-Threaded Applications
Threaded Applications
Creating Threads
Thread States
Runnable Threads
Coordinating Threads
Interrupting Threads
Runnable Interface
ThreadGroups

Thread Synchronisation & Concurrency

Race Conditions
Synchronised Methods
Deadlocks
Synchronized Blocks
Thread Communication – wait()
Thread Communication – notify()
Java 5.0 Concurrency Improvements
Thread-Aware Collections
Executor
Callable

Java Performance Tuning

Is Java Slow?
Don’t Optimize Until You Profile
HotSpot Virtual Machine
Garbage Collection Concepts
Garbage Collection Generations
Garbage Collection in Java 5.0
Object Creation
String, StringBuffer, and StringBuilder
Synchronized
Inline methods
Tuning Collections

Appendix A - Networking with Sockets

Clients and Servers
Ports, Addresses, and Protocols
The Socket Class
Communication Using I/O
Servers
The ServerSocket Class
Concurrent Servers
The URL Class
The URLConnection Class

Appendix B - Regular Expressions

Pattern Matching and Regular Expressions
Regular Expressions in Java
Regular Expression Syntax
Special Characters
Quantifiers
Assertions
The Pattern Class
The Matcher Class
Capturing Groups

Appendix C - J2EE Overview

Introduction to J2EE
J2SE Building Blocks
Servlets, JSPs, and Web Applications
Web Services
Enterprise JavaBeans
Additional J2EE APIs
J2EE Clients
The J2EE Platform