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 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 Operations

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 Basics

  • JUnit Overview and Test-Driven Development (TDD)
  • Tests and Assertions
  • Working with Exceptions
  • Organizing Tests with JUnit
  • Writing Fixtures: @Before and @After
  • Test Suites and Additional Capabilities
  • Mock Objects Overview

Build Tools

  • Ant Overview
  • Maven Overview

Abstract Classes

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

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

  • Grades of Java object-oriented abstraction
  • The comprehensive object model in Java
  • Designing interfaces, abstract classes, and concrete classes to enhance flexibility and decouple application subsystems from one another
  • Leveraging abstract classes to extract shared functionality while maintaining the flexibility provided by interfaces

The Role of Static and Dynamic Entities in the Application Model

  • Static Java classes and the dynamic properties associated with these classes
  • Understanding the functional distinctions between static and dynamic entities, their typical use cases, and best practices for designing solutions based on static and dynamic constructs
  • Introduction to design patterns
  • Introduction to the Factory design pattern

Operations with Primitive Types and Wrapper Classes

  • Essential facts and techniques for extending the use of primitive types within the Java object model.
  • Discussion on the role of wrapper classes for primitive types and their typical applications in software development

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

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

Formatting, Parsing, and Regular Expressions

  • Introduction to regular expressions in Java
  • Discussion of basic techniques for handling regular expressions (using the String class) as well as advanced techniques utilizing dedicated classes
  • Tokenization, searching, and pattern matching for string data types

Requirements

  • A solid foundation in Java language and Object-Oriented Programming (OOP) is required. Participants should be familiar 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