Home About Courses Schedule Services Webinars Contact Search

Java for Mainframe Programmers Part 2 (Collections, Databases and more)


Duration: 5 Days

Method: Instructor led, Hands-on workshops

Price: $2695.00

Course Code: JA1016


Technical Users, Applications Programmers, and Systems Programmers


Did you think you could learn all about the Java language in one week? It is much too full featured for that! If you already have the Java basics under your belt, this is the course that will take you deeper into the Java language. You will discover the additional capabilities provided by the Java programming language and its associated standard classes and packages. Learn to incorporate documentation with Javadoc; find out how JUnit supports effective and repeatable unit testing and how JavaBeans support comparing and sorting objects. Learn all about the Collections Framework, Java Database Connectivity (JDBC) and Java I/O. Learn about important features added to the language in Java 5 including enums, generics, and annotations. Learn about important features added to the language in Java 8 including functional interfaces, lambdas, and the new Stream API for processing collections. The course begins with an optional section that provides a review of Java basics to give you a Java refresher. This course is independent of the Java development environment that is being used. Typically, either Eclipse or RAD are used as the Integrated Development Environment (IDE).


Upon successful completion of this course, the student will be able to:

  • Code Javadoc comments in Java code and generate web-based documentation from them.
  • Design and code test cases using JUnit and take advantage of the JUnit Wizards.
  • Code Java Beans including support for comparison, sorting, stringifying and cloning
  • Use the enums, generics and annotations to write more type-safe code
  • Use the classes and interfaces that comprise the Collections Framework
  • Process database tables using Java Database Connectivity (JDBC)
  • Use Lambda expressions Method References and understand their relationship to Functional Interfaces
  • Use the Java 8 Stream API for processing collections similarly to processes relational tables
  • Process input and output streams using Java's I/O capabilities
  • (Time and interest permitting) Reflection and Introspection


Introduction to Java course or equivalent experience with basic Java programming


  1. Basic Java Review
    • Object Oriented Terminology
    • Creating Stand-Alone Java Applications
    • Primitive/Native Data Types
    • Variable Categories
    • Operators Precedence & Associativity
    • Control Structures
    • What is a Class
    • Importing Packages and Classes
    • Member Access Control
    • Defining Classes
    • Declaring and Instantiating Classes
    • Class Data Members
    • Defining and Calling Methods
    • Object References
    • Declaring and Using Arrays
    • For-Each Iterator
    • Strings
    • Passing Arguments to Main
    • this Reference
    • Class Constructors
    • Java Inheritance Syntax
    • Polymorphism
    • What are Interfaces?
    • Raising an Exception
    • Catching or Passing an Exception
    • Handling Exceptions
    • Input/Output Stream Model
  2. Javadoc Documentation
    • Javadoc Documentation
    • Javadoc Syntax
    • Generating JavaDocs in Eclipse
    • HTML in Javadocs
    • Javadoc Tags for Classes
    • Javadoc Tags for Methods
    • Package Info and Links
  3. Unit Testing with JUnit
    • Unit Testing Objectives
    • How to Make Unit Testing Succeed
    • Thorough and Automated Unit Testing
    • Best Practices
    • JUnit Overview
    • The JUnit Framework
    • Assert Methods Available With JUnit
    • Assert Methods – Additional Parameter
    • Project Source Folder Structure for Test Cases
    • What’s In the Test Case?
    • Things to Test
    • Test Case Execution
    • Testing With Separate Methods
    • Test Fixtures
    • Constructor Testing
    • Testing With Exception Handling
    • Test Suites
    • Best Practices
  4. JavaBeans and Comparing Objects
    • JavaBean Standard
    • Overloading the Constructor
    • JavaBeans & Interfaces
    • The toString Method
    • Using toString with Inheritance
    • Comparing Objects Using Equals Method
    • The equals Method Generated by Eclipse
    • Equals Method and Inheritance
    • The hashCode Method
    • Comparable and compareTo()
    • Comparator and compare()
    • Cloneable and clone()
    • Defining and Calling clone()
    • Copy Constructors
    • Finalize
  5. Type Safety
    • Annotations
    • Predefined Annotations
    • @SuppressWarnings
    • User Defined Annotations
    • Applying Annotations
    • Enum Type Defined
    • Enum Type Details and Uses
    • More About enum Types
    • Generics
    • Wrapper Classes
    • Generics and Autoboxing
    • Generics Restrictions and Benefits
    • Bounded Type Parameter
    • Generic Wildcards
    • Bounded Wildcards
    • Variable Length Argument Lists
    • Java 8 - The Optional Class
    • Optional Class Example
  6. Collections Framework
    • Collections Framework Overview
    • Simple Arrays: Review
    • For-Each Loop to Process an Array
    • Arrays of Objects
    • Passing Arrays to Methods
    • Multi-Dimensional Arrays
    • Java Collections Framework
    • Legacy Collections Classes – Vector
    • Other Legacy Collections Classes
    • Java 2 Collections Framework
    • Collection Interface
    • List interface
    • ArrayList Class
    • LinkedList Class
    • Set Interface and HashSet Class
    • SortedSet, TreeSet and HashSet
    • Introduction to Queues
    • Collections Class
    • The Comparable and Comparator Interfaces
    • Thread Safety
    • Map Interface and HashMap Class
    • Overriding equals and hashCode
    • Java Version 5 Improvements
    • Choosing an Implementation
    • Processing Collections: For-Each Loop
    • ArrayList Using Generics Example
    • HashMap with Generics & Autoboxing
  7. Manipulating Databases Using Java Database Connectivity (JDBC)
    • Static SQL vs Dynamic SQL
    • Static SQL vs Dynamic SQL
    • Stored Procedures
    • JDBC
    • JDBC Architectures
    • JDBC Drivers
    • Database Access Using Statement
    • Database Access Using PreparedStatement
    • Loading the Driver
    • Connect to Data Source
    • Create Statement
    • Executing SQL
    • Processing Result Sets
    • Cursor Positioning
    • Column Retrieval
    • Updatable Result Sets
    • PreparedStatement Interface
    • Connection Pooling
    • Error Handling
    • Processing Warnings
    • Using Finally
    • Stored Procedures: CallableStatement
    • ResultSetMetaData and DatabaseMetaData
    • Transaction Processing
    • Isolation Levels
    • SQL Batches
  8. Java 8 New Features
    • Functional Interfaces
    • Lambda Expressions
    • Lambdas Simplify Code
    • Using the Lambda Expressions
    • Implementing a Functional Interface
    • Method References
    • Collections and the Stream API
    • Streams
    • The Stream Interface
    • There is Much More to Streams
  9. Input/Output Streams
    • Input/Output Stream Model
    • Predefined Standard Streams
    • The java.io Package
    • Byte Streams and Character Streams
    • Input Methods and Output Methods
    • Simple File I/O and Example
    • Filtered Streams and Buffered Streams
    • Data Streams
    • Object Streams and Serialization
    • Character Streams
    • Formatting Numbers
    • Formatting: the Control String
    • Formatting Dates
    • java.util.Scanner
    • java.util.regex.Pattern
  10. [Optional] Reflection and Introspection
    • Determining Object Type
    • Reflection Defined
    • Reflection Usefulness
    • Reflection Drawbacks
    • Reflecting Class Methods
    • Field and Method Classes
    • Method Class Methods
    • Invoking Reflected Method
    • Reflecting the Class Itself
    • Creating New Instance
    • Introspection
    • Customizing BeanInfo
    • Invoking Method Using Introspection
    • Directly Accessing Properties