Get in Touch

Course Outline

Core Concepts Review

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

Design Patterns

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

Reflection

  • The Class Class
  • Discovering 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 Expressions Overview
  • Lambda Expressions and Functional Interfaces
  • Utilizing 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 and Time Zones

JUnit Fundamentals

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

Build Tools

  • Ant Overview
  • Maven Overview

Abstract Classes

  • Principles of Declaration and Implementation of Abstract Classes
  • Common Challenges Encountered When Working with Abstract Classes

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

  • Grades of Java Object-Oriented Abstraction
  • The Complete Object Model in Java
  • Designing applications with interfaces and abstract classes to enhance flexibility and decouple subsystems from one another in their implementation
  • Utilizing abstract classes to extract common functionality, combined with 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 Between the Functionality of Both Entity Types in Java, Including Typical Uses and Examples of Best Practices for Solutions Based on Static and Dynamic Entities
  • Introduction to Design Patterns
  • Introduction to the Factory Design Pattern

Operations with Primitive Types and Wrapper Classes

  • Essential Facts and Techniques to Extend the Use of Primitive Types in the Java Object Model
  • Discussion on the Role of Wrapper Classes for Primitive Types and Their Typical Applications Within Applications

Special Java Objects: String, StringBuilder, and StringBuffer

  • Review of Basic String Class Properties and the Handling of String Objects by the Virtual Machine
  • Using Buffer Classes and Operating on Strings

Formatting, Parsing, and Regular Expressions

  • Introduction to Regular Expressions in Java
  • Discussion of Both Basic Techniques for Handling Regular Expressions (String Class) and Advanced Techniques Based on Dedicated Classes for This Purpose
  • Tokenization, Search, and Pattern Matching for String Types

Requirements

  • Participants should possess a solid foundation in the Java language and Object-Oriented Programming (OOP). Essential knowledge includes familiarity with packages, control flow structures, loops, basic concrete classes, and fundamental interfaces.

 21 Hours

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories