Get in Touch

Course Outline

Review

  • Inheritance and Interfaces
  • Object References vs. Inheritance
  • Polymorphism
  • Interface Static and Default Methods
  • Collections and Generics
  • Generics (Inheritance, 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 Called Class
  • Finding Fields, Methods, and Constructors
  • Accessing Fields and Invoking Methods
  • Examining Arrays

Annotations

  • Annotations in the Java API (@Override, @Deprecated)
  • Defining Custom 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, 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 Classes

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

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

  • Grasping Java object-oriented abstraction
  • The complete object model in Java
  • Application model oriented for interfaces and abstract classes to provide greater flexibility and independence among subsystems in their implementation
  • Utilizing abstract classes to extract common functionality while extending the flexibility offered by interfaces

The Role of Dynamic and Static Objects in the Application Model

  • Static Java classes and the dynamic properties of these classes
  • Distinguishing the functionality of both types of entities within Java, including typical use cases and examples of good practices in designing solutions based on static and dynamic Java entities
  • 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 on the role of wrapper classes for simple types and typical applications of this concept within the application

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

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

Formatting and Parsing, Regular Expressions

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

Requirements

  • Proficiency in the Java language and Object-Oriented Programming (OOP) principles. Participants should be familiar with packages, control flow statements, loops, basic concrete classes, and fundamental interfaces.

 21 Hours

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories