Course Description

This 3-day intensive, hands-on Java Programming Advanced training course explores advanced Java™ Standard Edition language features and packages. Students will learn how to utilise more advanced I/O capabilities with object serialisation and low-level file I/O with the java.nio package.

Advanced JDBC topics include batch processing and working with LOBs and RowSets. Client/server applications can be written utilising both the java.net and java.rmi packages. Security is also covered in detail throughout several chapters including security policies and data encryption. XML parsing is done using the JAXP API. Programmers can use C and C++ functions from their Java programs using JNI.

The course ends with several chapters on design patterns and how they can be put to best use in different types of Java applications.

 

Pre-requisites

Attendance at our Java Programming Introduction training course or equivalent experience is required.

Who is this course for?

This course is designed for Java developers who wish to increase their depth of knowledge of Java programming and explore the uses of the various advanced API packages.

Further Training

We recommend that advanced-level Java developers should also consider attending our Java Design Patterns training course.

Course content

Parsing XML with Java - JAXP

Java API for XML Processing
Introduction to SAX Parsing
SAXParser and JAXP
SAX Event Methods
Introduction to DOM
Parsing DOM with JAXP
The DOM API
Validation
Transformation

Advanced I/O - Object Serialization

What is Serialization?
Serializable Objects
Writing an Object
Reading an Object
Handling Exceptions
Customizing Serialization
Controlling Serialization
Versioning

Advanced I/O - New I/O

The java.nio package
Buffers and Channels
Buffer Implementations
Buffer Methods
ByteBuffer Methods
FileChannel
File Locking
MappedByteBuffer
Transferring Data Between Channels
Character Sets

Reflection

Introduction to Reflection
The Class Class
The reflect Package
Constructors
Fields
Methods
Exception Handling & Reflection
JavaBeans
Dynamic Programming

/toggle]

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 URL Connection Class

Remote Method Invocation

Distributed Applications
Stubs
Steps to Create a Remote Object
An RMI Client
An RMI Server
RMI Classes and Interfaces
Class Distribution
RMI Utilities
Parameter Passing and Serialization

Java Naming and Directory Interface (JNDI)

Naming and Directory Services
Namespaces and Contexts
Naming Operations
Bindings
Attributes
Directory Operations
DNS Lookups with JNDI
JNDI in J2EE

 

 

Appendix A - Encryption with the javax.crypto Package

Cryptography Concepts
Encryption Keys
Cipher Algorithms
Modes and Padding Schemes
The Cipher Class
Encrypting and Decrypting Data
Cipher Output Stream
Cipher Input Stream
Encryption using Password Ciphers
Exchanging Encrypted Keys
Sealed Object

Appendix B - Native Methods

Overview of Java Native Methods & JNI
How to Create and use Native Methods
Native Method Declaration
Using javah
Creating the Implementation Code
Compilation
Distribution
Using the Native Methods
JNI
Passing Arguments
Calling Java Methods in Native Code
JNI Signatures
Passing Arguments
Calling Java Methods in Native Code
JNI Signatures