Advanced Java Programming
Rev. 1.0
 

            This intensive hands-on course explores advanced Java language features and packages. Java programmers will be able to take the content learned and immediately apply it to the problems encountered on the job.

            The course begins with a discussion of inner classes. Database programming using JDBC is covered in depth. Object serialization is covered. Distributed programming in Java is introduced, including use of both Remote Method Invocation and CORBA. Reflection in Java and JAR files are covered. Server-side Web programming is introduced using servlets. Java security is covered in depth, including both the Java security model and details of the java.security package. Native methods are covered. There is also an introduction to JavaBeans. (For more detail on this last subject, please see our 4-day course “Using and Developing JavaBeans”.

There are many hands-on labs and example programs. 

LEARNING OBJECTIVES 

·        Learn intermediate to advanced Java features such as inner classes, object serialization, reflection, the use of JAR files, and native methods.

·        Gain an in-depth understanding of database programming in Java using JDBC

·        Learn Java's security model and how to do security programming in Java.

·        Learn how to do distributed programming in Java using RMI and CORBA

Course Duration:  5 days 

Prerequisites:  Java Programming and some Java development experience are required. 

1.      Course Introduction

Course Objectives
Course Overview
Suggested References

2.      Inner Classes

Nested Object Model
Member Classes
Local Classes
Anonymous Classes
Instance Initializers
Inheritance vs. Containment Last Topic
Inner Classes with the AWT

3.      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

4.      JDBC SQL Programming

Error Checking and the SQLError Class
The SQLWarning Class
The Statement Interface
The ResultSet Class
Executing SQL Statements
Executing SQL Updates
Transaction Management

5.      Advanced JDBC

Using a PreparedStatement
Parameterized Statements
Stored Procedures and Functions
ResultSets from Stored Procedures
The execute() Method
ResultSetMetaData
The DriverManager Class
Types of JDBC Driver
The DatabaseMetaData Class
Positioned Updates
Large Objects

6.      Object Serialization

What is Serialization?
Serializable Objects
Writing an Object
Reading an Object
Handling Exceptions
Customizing Serialization
Controlling Serialization
Motivation I: Persistence
Motivation II: Distributed Applications
Motivation III: Object Storage

7.      Remote Method Invocation

Distributed Applications
Stubs and Skeletons
Steps to Create a Remote Object
Local Example
Remote Client
Remote Server
RMI Classes and Interfaces
Parameter Passing and Serialization
RMI Utilities

8.      CORBA

Interface Definition Language
IDL-to-Java Compiler
Server Code - ImplBase Approach
Client Code
Running the Application
CORBA Review

9.      Reflection

The Class Class
The reflect Package
Dynamic Instantiation
Attribute Access
Method Determination and Invocation
Exception Handling and Reflection
Uses of Reflection

10.  JAR Files

The Jar Utility
Manifest Files
Signed JARs

11.  The Event Model

Event Listeners
Event Sources
Event Objects
Firing Events
Event Casting Models
Events and Exceptions

12.  JavaBeans

The Basic Bean
Bean Properties
Bound Properties
Constrained Properties

13.  More JavaBeans

Bean Persistence
Multithreading Considerations
Packaging Beans
The BeanBox
Introspection
Customizers
JavaBeans and ActiveX

14.  Servlets

3 Ways to Use Servlets
Dynamic HTML Symantics
GenericServlet API
HttpServlet API
HTML Servlet Choices
Client/Server Communication
Client Example
Server Example

15.  Managing Security Policy

The Java Security Model
The Java Virtual Machine
Applet Security - The Sandbox
Trusted Applets
Signatures and Message Digests
The javakey Utility
Security and JARs

16.  Keys, Signatures and Certificates

Java Cryptographic Architecture
The Security API
The Provider Class
Security Classes and Interfaces
Generating Keys
Managing Keys
Access Control Lists
Securing Network Traffic - Data Encryption

17.  Native Methods

Overview of Java Native Methods and 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
Embedding a VM in Native Code