What you'll learn:
- Apply functional programming techniques in Java i.e. lambda expressions (including method references) and Streams.
- Obtain the knowledge of many advanced Java concepts such as Concurrency, Generics/Collections, Localization, JDBC and IO/NIO.2.
- Master the important topics introduced Java since Java 8 e.g. modules, sealed classes, records, switch expressions, unnamed classes and instance main methods.
- Acquire the skills to pass the Java OCP exams.
[UPDATE June 2024] - Spring Boot 3 added! I have added a Spring Boot v3 application. Topics include: configuring the application (including its dependencies); how RESTful applications work and how dependency injection and inversion of control operate. I walk through the code in detail and demonstrate it in action with Postman.
[UPDATESeptember 2023] - Java 21 added! Java 21 has now been officially released. Among its topics include the eagerly anticipated "Unnamed classes and instance main methods". In addition, other topics include sequenced collections; record patterns and pattern matching for switch.
[UPDATEApril 2023] - MAJORNEWS- this course has been selected by Udemy for inclusion in their Udemy Business program.
"Udemy Business is a curated (carefully chosen) selection of high-quality Udemy courses — like yours" [Udemy email].
"Only 3% of all courses are chosen for Udemy Business." [Udemy email].
Java has now 4 LTS (Long Term Support)releases: 8, 11, 17 and 21. This course covers them all : it addresses advanced Java 8 programming in addition to Java 11, 17 and 21.
This course is a successor to my "Java 8 OCA (1Z0-808) Certification - Master the Fundamentals", which covers Java fundamentals in great detail. As a result, this course starts with lambdas i.e. fundamentals such as classes, interfaces, operators and methods are not in this course. It is important to realise that while familiarity with Java is helpful, certification is certainly not a pre-requisite.
This course starts with the advanced topics of Java 8 - lambdas, streams, collections, generics, concurrency etc.. There are assignments for lambdas, streams and collections.
Java 11 is then covered - LVTI, private interface methods, annotations, security and modules. Modules are examined in detail (with examples).
Java 17 is covered next - sealed classes, records, switch expressions, pattern matching and text blocks. A significant assignment covering all topics is included.
Lastly, Java 21 is covered - unnamed classes and instance main methods, record patterns, pattern matching for switch and sequenced collections. An assignment covering all topics that builds on the Java 17 assignment, is included.
All the code used throughout the course is available.
Topics are presented with both general understanding and certification in mind i.e. the course caters for both. Regarding certification, Java 8 OCP (1Z0-809), Java 11 OCP (1Z0-819) and Java 17 OCP (1Z0-829) are targeted. This course would be a great training support in conjunction with the excellent MCQ Certification tool from Enthuware (as there are no MCQ's on this course).
The theory of the topic is explained with lots of code examples used to reinforce the topic. The videos are annotated in detail to help the learner follow my explanations. Having access to the code is a great learning aid as you can get the code running and see what happens when you change it. In addition, the assignments/exercises are a great aid for learning.
Topics include:
Spring Boot Application:
configuring a Spring Boot application, including its dependencies
understanding how RESTful applications work
architecture overview
code explained in detail
testing the application with Postman
Java 21:
Unnamed classes and instance main methods
Record patterns
Pattern matching for switch
Sequenced collections
Java 17:
Sealed classes
Records
switch expressions and pattern matching
Text blocks
Java 11:
Modules
private interface methods
LVTI (local variable type inference)
Annotations
Security
Java 8 Advanced:
Lambda Expressions
Streams
Generics
Collections
Concurrency
JDBC
File IO
NIO.2
Serialisation
Localisation
By way of background, I am a PhD-qualified University lecturer since 2002. For over a decade, I have taught Java on a bespoke Masters on behalf of a highly regarded software company.
Ihave recently co-authored two books on Java: "Learn Java with Projects" and "Java Memory Management:a comprehensive guide to garbage collection and JVMtuning". Both were co-authored with Maaike van Putten.
I love teaching and this course has all my experience in explaining advanced concepts of Java. In addition, I have a strong attention to detail which lends itself perfectly to the Oracle Java Certification exams.