Skip Ribbon Commands
Skip to main content

J-520 - Advanced Java Programming

Price:

Duration: 5 Days

Audience:

Level:

Technology:

Delivery Method:

Software Assurance Value:

Microsoft CPE:

Course Information

Course Description

​Client/server applications can be written utilizing 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 5-day course ends with several chapters on design patterns and how they can be put to best use in different types of Java applications.

Course Objectives

​At the end of this course, the student will be able to:

  • Describe, code and use serialized objects.
  • Use advanced Input/Output techniques.
  • Use Reflection to access information about objects and classes.
  • Use advanced JDBC techniques, including batch updates, RowSets and DataSources.
  • Perform basic networking with Sockets.
  • Use RMI to marshal remote objects.
  • Manage security policies, including keys, signatures and certificates.
  • Use Java Authentication and Authorization Service (JAAS).
  • Use Java Naming and Directory Interface (JNDI).
  • Parse XML with Java using JAXP.
  • Describe the use of Java Native methods and JNI.
  • Understand Java Design Patterns (Creational, Structural, Behavioral).

Course Audience

​Java programmers who wish to increase their depth of knowledge in Java programming and explore the uses of the various advanced packages.

Course Outline

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 and Reflection
  • JavaBeans
  • Dynamic Programming

Advanced JDBC

  • JDBC SQL Escape Syntax
  • The execute() Method
  • Batch Updates
  • Updatable Result Sets
  • Large Objects
  • Working with Savepoints
  • RowSets
  • CachedRowSets
  • DataSources

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

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

Advanced RMI

  • Client Callbacks
  • Dynamic Class Loading
  • Activation
  • Activatable Objects
  • Registering Activatable Objects
  • Security and Activation
  • JNDI and RMI Registry
  • RMI-IIOP

Managing Security Policies

  • Untrusted Code
  • Security Managers
  • The Java Security Model
  • Policy Entries
  • Policy Files
  • Using the Policy Tool
  • Securing Applets
  • Securing Applications

Keys, Signatures, and Certificates

  • Jar Files
  • Data Security Concerns
  • Message Digests
  • Digital Signatures
  • Using keytool
  • Using jarsigner
  • Certificates
  • Certificate Chains
  • Managing Keys and Certificates
  • Security Policies for Signed Code
  • Java Cryptography Architecture

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 Objects

Java Authentication and Authorization Service (JAAS)

  • Authentication and Authorization
  • JAAS Overview
  • LoginContext
  • Subjects, Principals, and PrivilegedActions
  • Authentication with the NTLoginModule
  • Defining Permissions in Policy Files
  • KeyStoreLoginModule
  • Callbacks
  • NameCallback and PasswordCallback
  • The Policy Class

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

Parsing XML with Java - JAXP

  • The 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

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
  • JNI Signatures

Java Design Patterns - Creational Patterns

  • What are Design Patterns?
  • What are Creational Patterns?
  • Singleton - Introduction
  • Singleton - Implementation
  • Singleton - When to Use?
  • Factory Method - Introduction
  • Factory Method - Implementation
  • Factory Method - When to Use?
  • Builder - Introduction
  • Builder - Implementation
  • Builder - When to Use?

Java Design Patterns - Structural Patterns

  • What are Structural Patterns?
  • Façade - Introduction
  • Façade - Implementation
  • Façade - When to Use?
  • Adapter - Introduction
  • Adapter - Implementation
  • Adapter - When to Use?
  • Composite - Introduction
  • Composite - Implementation
  • Composite - When to Use?

Java Design Patterns - Behavioral Patterns

  • What are Behavioral Patterns?
  • Template - Introduction
  • Template - Implementation
  • Template - When to Use?
  • State - Introduction
  • State - Implementation
  • State - When to Use?
  • Observer - Introduction
  • Observer - Implementation
  • Observer - When to Use?

Appendix A - JDBC SQL Programming

  • Error Checking and the SQLException Class
  • The SQLWarning Class
  • JDBC Types
  • Executing SQL Queries
  • ResultSetMetaData
  • Executing SQL Updates
  • Using a PreparedStatement
  • Parameterized Statements
  • Stored Procedures
  • Transaction Management

Appendix B - Eclipse

  • Introduction to Eclipse
  • Installing Eclipse
  • Running Eclipse for the First Time
  • Editors, Views, and Perspectives
  • Setting up a Project
  • Creating a New Java Application
  • Running a Java Application
  • Shortcut Key Sequences
  • More Shortcut Key Sequences
  • Setting the Classpath
  • Importing Existing Java Code into Eclipse
 

Course Prerequisites

​Before attending this course, students must have:

  • Completed J-510, Java Programming.
Course Schedule
This course is not scheduled yet.

Upcoming Training

There is no item in course list.