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.
Testimonials (3)
That we got a complex overview also about the context - for example why do we need some annotations and what they mean. I liked the practical part of the training - having to manually run the commands and call the rest api's
Alina - ACCENTURE SERVICES S.R.L
Course - Quarkus for Developers
interaction through exercises and also projects sharing
Claudiu - MSG system
Course - Advanced Spring Boot
The extra information that was shared, the training was not straightforward groovy, which was nice.