Modern Java: learn object-oriented programming
Learn modern Java: classes, inheritance, interfaces, collections, exceptions, files and concurrency.
- Duration
- 35 h · 5 days
- Level
- Intermediate
- Format
- On site · Remote · Blended
- Max. group size
- 12 participants
Overview
This program teaches programming in modern Java. Participants build their first classes, master inheritance, polymorphism and interfaces, discover the language's recent features (records, sealed classes, pattern matching), use collections, lambda expressions and exceptions, then tackle input/output and concurrency. Each concept is applied on a running application.
Who this program is for
- Developers moving to Java
- Students and career changers
- Teams preparing to upskill towards Spring or Jakarta EE
Prerequisites
- Notions of object-oriented programming
- Having already developed in a language
Learning objectives
- Use Java as an object-oriented language
- Structure code into classes, packages and records
- Apply inheritance, polymorphism, interfaces and sealed classes
- Work with collections, enumerations and lambdas
- Handle exceptions
- Reading and writing files
- Understand threads and concurrency
Detailed curriculum
10 modules · 35 h · 5 days
Java ecosystem and first steps
- Platform, versions and distributions
- Compile, run, package
- Basic syntax
- Types, operators and control structures
- IDE and debugging
Classes and objects
- Classes, attributes and methods
- Constructors and packages
- Encapsulation
- Records
- Static methods and immutability
Model the application's first classes.
Inheritance and polymorphism
- Inheritance and overriding
- Abstract classes
- Interfaces and default methods
- Polymorphism
- Sealed classes
Design and best practices
- Composition or inheritance
- SOLID principles applied
- Dependency management
- Unit testing with JUnit
- Code conventions
Improve the structure of the running application.
Collections, enumerations and lambdas
- Lists, sets, maps
- Enumerations
- Inner and anonymous classes
- Lambda expressions and functional interfaces
- Introduction to streams
Arrays, generics and pattern matching
- Arrays
- Generics
- Comparisons and sorting
- Pattern matching
- Optional
Process a dataset with collections and streams.
Exceptions
- Exception hierarchy
- try / catch / finally
- try-with-resources
- Custom exceptions
- Logging
Contributions of recent versions
- Files with NIO2
- Dates and times
- Process API
- Text blocks and formatting
- New features of the latest versions
Write a utility that reads files and launches a process.
Data input/output
- Flat files, CSV, Excel
- Serialization
- Reading and writing JSON
- Encoding handling
- Robust processing
Threads, concurrency and wrap-up
- Threads and executors
- Synchronization and pitfalls
- Virtual threads
- Assembling the running application
- Review
Finalize and present the application.
Tools and technologies
Teaching methods
- Alternating short lectures and hands-on work
- Live demonstrations by the trainer
- Capstone project built throughout the modules
- Group corrections and discussion of best practices
Assessment
- Hands-on exercises corrected in each module
- Mini-project completed at the end of the course
- Knowledge-check quiz
Required equipment
- A computer with an internet connection
- A recent JDK, Maven or Gradle and a Java IDE
Resources provided
- Course materials and repository of corrected exercises
Career outcomes
- A structured, tested Java application
- A foundation for Spring, Jakarta EE or Android
- The ecosystem's best practices
Related video courses
My video courses that go with this program, to get ready for the training or to review afterwards. Free with an account.

