Course Code: 5729

Fast Track to Java 11 and OO Development

Class Dates:
1/10/2022
Length:
5 Days
Cost:
$2695.00
Class Time:
Technology:
Developer
Delivery:
Instructor-Led Training, Virtual Instructor-Led Training

Overview

  • Course Overview
  • Fast Track to Java and OO Development provides a comprehensive introduction to Java. It is suitable for programmers with good working programming experience (no Java experience needed). It can be taught to audiences with less experience by reducing coverage of the optional, more advanced, topics. In addition to covering basic Java programming, the course provides a solid understanding of the core OO and Java concepts and practices needed to create well-designed Java programs. This includes creating well-designed Java classes, encapsulation, composition, and inheritance/interfaces. The material and labs include coverage of useful new Java capabilities such as the new Java 9 module structure, type inference (Java 10-11), and API enhancements. It also introduces important APIs such as the Java Collections Framework, and JDBC/JPA. This course is suitable for environments using Java 9-11. It also covers details of the Java release cycle, and Long Term Support (LTS) releases.
  • Audience
  • This course is intended for individuals who are Java programmers and have worked with databases and with object-oriented programming techniques, who are now ready to create more complex and advanced programs using Java SE 8.

Prerequisites

  • Students should be skilled and experienced in using Java. They should have knowledge of database structures and terminology. Also, they should be familiar with object-oriented programming. To ensure your success, we recommend you first take the Logical Operations courses or have equivalent knowledge.

    Introduction to Programming Using Java
    Object-Oriented Programming and Design Using Java (Third Edition)
    Java Fundamentals (Java SE 7)

Course Details

  • Fast Track to Java 11 and OO Development
  • Course Overview
  • What We'll Learn About and Use
  • Typographic Conventions
  • Session 1 - A Simple Java Class and Running a Java Program
  • A Simple Application Class
  • The HelloWorld Program Broken Down
  • Compiling HelloWorld
  • Lab 1.1 - HelloWorld
  • Language and Platform Features
  • What is Java?, Java is Modern & Object-Oriented
  • Java is Portable & Safe, Multiple Platforms
  • Who Develops/Controls Java?, Current Java Release Cycle
  • Program Life, Cycle, Java Source and Java Bytecode
  • Life Cycle of Java Program, Insulated from Environment, Dynamic, The Runtime Process
  • The Java Development KIT (JDK)
  • The Java API, Downloading & Installing the JDK
  • Session 2 - Class and Object Basics
  • Session Objectives
  • Object-Oriented Programming Overview,
  • What is Object-Oriented Programming (OOP), What is an Object, Important Object Characteristics
  • About OOP, What's a Type, Types, Instances, and Property Values, Classes and Objects
  • Lab 2.1: Exploring Types and Objects
  • Classes, References, and Instantiation, The Class in Java, Blueprint, Creating & Referencing Objects
  • Identity and Object References
  • Data and Methods in a Class, Storing Data in Objects, About Fields, Behavior and Methods
  • Data Access in Methods, Pretty Pictures, Java Naming Conventions
  • Lab 2.2: Writing a Class Definition, Lab 2.3: Using jshell
  • More about Variables, About Java Primitive Data Types, Numberic Literals
  • Non-Literials, Strings, Arithmetic Operations, Primitive Types
  • Session 3 - Class and Object Basics
  • More about Methods, Working with Dat in Methods, Return Values in Methods
  • Pretty Pictures, Local Variables and the this Variable, Complete Example
  • Overloading Methods, The toString() Method
  • Lab 3.1: Accessor Methods
  • Encapsulation and Access Control, Encapsulation: Black Boxes, Principles
  • Program Correctness, Access Control, Private vs Public Access
  • Lab 3.2: Encapsulation
  • Constructors, Using Constructors, Explicit Constructor Call
  • Lab 3.3: Adding Constructors to a Class
  • Static or Class Members, Static Fields and Methods
  • Declairing /Using Static Members, Accessing Data in Static methods, final variables
  • Lab 3.4: Using static Members, Review Questions, Lesson Summary
  • Session 4 - Flow of Control
  • Branching Statements, Program Execution Sequence in Java, The Comparison Operators, The Logical Operators, if-else Statement
  • Comparison, Scopes and Blocks, Class and Method Scope
  • Iterations, while, do-while, for, break, continue Statement
  • Lap 4.1: Data Validation
  • Review Questions, Lesson Summary
  • Session 5 - More on Classes and Objects
  • Type-Safe Enums, enumerated Types, Defined, enum Types
  • More enum Examples, enum Features, switch on enum
  • for-each with enum, Advanced enum Features, Problems with int Enumerated Types
  • Lab 5.1: Using Enums
  • Wrapped Classes, Autoboxing / Unboxing, Conversion to/from String, Null Values
  • Mini-Lab: Work with Wrapper Classes
  • Date/Time Support, Previous java Date/Time Support - History
  • Java 8 Date/Time Support - Overview, Creatiing Dates and Times - now() and of (), Parse ()
  • Accessing Date/Time Fields-get XXX(), get (), Comparing Instances - equals () Method, Other Capabilities
  • Lab 5.2: Working with Dates and Times
  • Working with References, Assignment, Reference Types as Method Parameters, final Method parameters var Type (Java 10+)
  • Lab 5.3: Debugging
  • Session 6 - Strings and Arrays
  • String and StringBuffer/String Builder
  • Using Strings, Creating New Strings, Useful String Methods, Comparing Strings -equals () Method
  • Classes StringBuffer and StringBuilder,
  • Regular Expressions, Mini-Lab Work with Strings
  • Arrays, Working with Arrays, Arra7y of Object References
  • Array, Iteration, args Array, varargs
  • Multidimensional Arrays
  • Lab 6.1: Arrays
  • Review Questons
  • Session 7 - Packages and Modules
  • Packages Overview
  • Packages - Dealing with Complexity, The import Statement, Examples of Importing
  • Standard, Imports, Resolving Naming Conflicts, Static Imports
  • Creating Packages, Access Control: Class, Method, and Field
  • Organizing Files and Packages, JAR: java Archive, Summary - Using Packages
  • Lab 7.1: Packages
  • Introduction to Modules
  • Package Shortcomings (Java 8 and Older)
  • What are Java Modules? Example: Using Another Module
  • Modules and File Structure, Module Name vs. Package Name
  • Module-Path Locating Dependencies
  • Lab 7.2: Modules, Classpath and Migration
  • Session 8 - Composition and Inheritance
  • Dealing With Complexity and Composition
  • Composition, Delegation, Benefits of Composition, Delegation
  • Benefits of Composition, Issues with Composition
  • Object Relationships, Other Kinds of Relationships
  • Lab 8.1 - Composition
  • Inheritance and Dealing with Complexity
  • Inheritance Hierarchy, The extends Keyword
  • Inheriting from the Superclass, Inheritance and Superclass Data Members
  • A Subclass IS-A Superclass, Accessing Superclass members, Constructors and Inheritance, Final Classes,
  • Lab 8.2 - Inheritance
  • Overriding & Polymorphism
  • Changing Behavior with method Overriding, OO Concepts - Polymorphism
  • .
  • Overriding and Polymorphism, Method Overriding - Changing Behavior @ Override
  • OO Concepts - Polymorphism, Importance, The super Keyword, Access Control - protected Access, Important OO Principles
  • Lab 8.3: Polymorphism
  • class Object, methods of Class Object, Automatic Storage Management
  • Abstract Classes, Using Abstract Classes
  • [Optional] Lab 8.4: Abstract Class
  • Session 9 - Interfaces
  • Interfaces Defined, Implementing an Interface, Types as References, Types Example
  • OO Principles Still Apply, Specifications Use Interfaces, Inheritance
  • Implementing Multiple Interfaces
  • Lab9.1: Interfaces
  • Default Methods and static methods in Interfaces (Java 8+)
  • Using Default Methods, Motivation and Benefits of Default Methods
  • Static Methods in Interfaces (Java 8+)
  • [Optoinal] Lab 9.2: Default Method
  • Session 10 - Exceptions
  • Overview of Exceptions, Exception Hierarchy,
  • Checked and Unchecked Exceptions, Core Exception Classes
  • Commonly Used Methods, Throwing Exceptions
  • Throwing Exceptions with throw, Program Flow with Exceptions
  • Stack Trace Illustrated, User-Defined Exceptions
  • Lab 10.1: Unchecked Exceptions
  • Handling Exceptions, Checked Exceptons - throws Clause, Handling Exceptions
  • Catching Multiple Exceptions, Program flow - multiple catch Blocks, Multicatch
  • finally Block, Variable Scope, using try-with -resources (Java 7+) O
  • Overriding Methods with throws Clause, Exception Handling - Best Practices
  • [Optional] Lab 10.2: Checked Exceptions
  • Session 11 - Collections and Generics
  • Collections Overview, Framework, Hierarchy - Illustrated, Interface
  • Generics and Type-Safe Collections, Quick Aside: Collections of Object, Be General , Diamond Operator = <> (Java 7+)
  • Lists, Sets, and Maps, Interfaces and Contracts: List, Set, Map
  • Lists Interface, Using Set Examplesorting Objects - comparable /comparator Map Interface (1 of 2) & (2 of 2)
  • Using Map Example, for each - Interating over Collections, Autoboxing with Collections
  • Summarining Collection Features, Lab 11.1: Using collections
  • Utility Classes - Collections and Arrays, Collections Class, Arrays Class
  • [Optional] More About Generics, What are Generics
  • Declaring a Generic Class - Example, Using Generics - Example, Inheritance with Generic Types
  • Assignment with Generic Types, Generic Methods
  • Session 12 - Database Access with JDBC and JPA
  • JDBC Overview, What is JDBC?
  • JDBC Architecture, The Fundamental JDBC API, Common JDBC Types
  • Nameing Database Table, Database Connection - Example, Using Statement - Example, Using PreparedStatement - Example
  • JPA Overview, The Issues with Persistence Layers
  • Object-Ralational Mapping (ORM) Issues, Java Persistence API (JPA) Overview
  • JPA Architecture - High Level View, Programming View
  • Brief Annotations Overview, The Issue
  • Brief Word About Annotations (The Solution) How Annotations Work
  • Working with JPA, Entity Classes, MusicItem Entity Class, Additional MusicItem Annotations
  • Lab 12.1: Mapping an Entity Class
  • The Persistence Unit, persistence.xml Structure, The Entity Manager, Factory & EM Creation
  • Lab 12.2: Using JPA, Lab 12.3: Insert/Query Demo
  • Session 13 - Additional Language Features
  • Lambda Expressions (Java8+)
  • Motivation: Common Actions are Verbose, Solution: Lambda Expressions, Function Interface
  • Lambda Expressions, How Lambda Expressions Work
  • Lambda Expressions Syntax
  • [Optional]Lab 13.1: Working with Lambdas (Demo)
  • Other Java Features, Scripting Language Integration
  • Monitoring and Management Tools
  • Session 14 - I/O Streams (optional)
  • Decorator Pattern
  • Working with Java I/O
  • Overivew of I/O Streams, High-Level and Low-Level Streams
  • Reader, Writer Class Hierachy
  • BufferedReader, PrintWriter - Filering Stream Example
  • I/O is Exception-Prone, I/O Streams Must Be Closed
  • Automatic Closing via try-with-resources
  • Lab 14.1: Reading and Writing Files
  • Byte Stream, Common Byte Stream Classes
  • Working with Byte Streams - Example, Converting Between Byte & Character Streams
  • Working with Other Sources of Data, Formatted Output
  • Interger Format Specifiers, Format Specifier Modifiers, Lab14.2: Using Byte Strea,s
  • .
  • Working with Files and NOP
  • The File Class, Using the File Class - Example
  • Getting File Information, Working with the Filesystem
  • New I/O (NIO and NIO.2), NIO Features
  • NIO.2-Package java.nio.file, Using Paths
  • Files Utility Class, other NIO.2 Capabilities
  • Lab 14.3: Working with Files [Optional HW]