Get in Touch

Course Outline

Review

  • Inheritance and Interfaces
  • Object References vs. Inheritance
  • Polymorphism
  • Static and Default Methods in Interfaces
  • Collections and Generics
  • Generics: Inheritance and Wildcards
  • Writing Generic Types

Design Patterns

  • Object Creation
  • Static Methods and Fields
  • The new Operator
  • Creation Patterns
  • Inheritance vs. Composition: Pros and Cons
  • Composite Pattern
  • Inner Classes

Reflection

  • The Class Class
  • Finding Fields, Methods, and Constructors
  • Accessing Fields and Invoking Methods
  • Examining Arrays

Annotations

  • Annotations in the Java API (@Override, @Deprecated)
  • Defining Annotations

Functional Programming

  • Lambda Expression Overview
  • Lambda Expressions and Functional Interfaces
  • Using Lambda Expressions
  • Working with Method References

The Stream API

  • Streams and Collections
  • Filtering Collections
  • Chaining and Pipelining

Date/Time API

  • Legacy APIs
  • The Date/Time API (JSR 310)
  • Date-Based and Time-Based Events
  • Timestamps, Periods, and Durations
  • Performing Calculations
  • Formatting
  • Localization / Time Zones

JUnit Basics

  • JUnit Overview and Test-Driven Development
  • Tests and Assertions
  • Working With Exceptions
  • Organizing Tests with JUnit
  • Writing Fixtures - @Before, @After
  • Test Suites and Other Capabilities
  • Mock Objects Overview

Build Tools

  • Ant Overview
  • Maven Overview

Abstract Class

  • Declaration principles and implementation of abstract classes
  • Typical challenges encountered when working with abstract classes

The Role of Classes, Abstract Classes, and Interfaces in the Application Model

  • Evaluating Java object-oriented abstraction levels
  • The complete object model in Java
  • Programmatic models oriented towards interfaces and abstract classes to enhance application flexibility and decouple subsystems from each other in their implementation
  • Applications of abstract classes to extract common functionality while leveraging the flexibility provided by interfaces

The Role of Dynamic and Static Objects in the Application Model

  • Static Java classes and the dynamic properties of these classes
  • Distinguishing between the functionality of both types of entities in Java, including typical uses and examples of best practices in designing solutions based on static and dynamic Java elements
  • Introduction to design patterns
  • Introduction to the Factory design pattern

Operations with Simple Types and Wrapper Classes

  • Key facts and techniques to extend the use of primitive types within the Java object model.
  • Discussion of the role of wrapper classes for primitive types and their typical applications within the application

Special Java Objects: The String Class, StringBuilder, and StringBuffer

  • Review of basic properties of the String class and discussion of how the virtual machine handles String objects
  • Use of buffer classes and operations on strings

Formatting, Parsing, and Regular Expressions

  • Introduction to regular expressions in Java
  • Discussion of both basic techniques for handling regular expressions (using the String class) as well as advanced techniques based on dedicated classes for this purpose
  • Tokenization, search, and pattern matching for string types

Requirements

  • Prerequisite knowledge of the Java language and Object-Oriented Programming (OOP). Participants must be proficient in packages, control flow statements and loops, as well as basic concrete classes and interfaces.

 21 Hours

Testimonials (3)

Upcoming Courses

Related Categories