Java SE Advanced Language Features
You want to deepen your knowledge as a Java developer. This course will teach you Java beyond the fundamentals, and you'll learn how to use records, sealed classes, lambda expressions, annotations, generics, and other Java features effectively.
What you'll learn
To grow as a Java developer, you'll need to understand and be able to use all the tools that Java provides to you. In this course, Java SE Advanced Language Features, you'll learn how to use Java features that go beyond the fundamentals. First, you'll learn how to build a domain model with records and sealed classes, and explore advanced classes and interfaces. Next, you'll learn advanced use of generics. Finally, you'll gain a deeper understanding of lambda expressions, writing your own annotations, using Optional, and try-with-resources. When you're finished with this course, you'll have the skills and knowledge of advanced Java needed to work on any Java software development project effectively and professionally.
Table of contents
- Course Introduction 5m
- Immutable Data Objects 6m
- Immutable Classes and Records 3m
- Checkpoint 01 - Make a Class Immutable 0m
- Creating a Record 3m
- Overriding Accessor Methods 4m
- Automatically Generated Object Methods 2m
- The Canonical Constructor 6m
- Checkpoint 02 - Make a Record Fully Immutable 0m
- The Compact Constructor 2m
- Checkpoint 03 - Add a Constructor to a Record 0m
- Additional Constructors 4m
- The Class Hierarchy of Records 1m
- Practical Use Cases for Records 9m
- Building Records with the Builder Pattern 4m
- Exercise 01 - Create a Builder for a Record 0m
- Adding Wither Methods to Records 7m
- Exercise 02 - Create Wither Methods for a Record 0m
- Module Summary 3m
- Nested Types 4m
- Static Nested Classes 6m
- Checkpoint 05 - Write a Static Nested Class 0m
- Inner Classes 7m
- Checkpoint 06 - Create an Instance of an Inner Class 0m
- Exercise 04 - Accessing Shadowed Members 0m
- Nested Interfaces, Records, and Enums 2m
- Local Types 8m
- Anonymous Classes 6m
- Checkpoint 07 - Write an Anonymous Inner Class 0m
- Default, Private, and Static Methods in Interfaces 5m
- Static Initializer Blocks 3m
- Instance Initializer Blocks 2m
- Module Summary 4m
- Overview 2m
- Example: Defining Generic Types 6m
- Explanation: Defining Generic Types 8m
- Checkpoint 08 - Make a Class Generic 0m
- Defining Generic Methods 7m
- Exercise 05 - Write a Generic Method 0m
- Bounded Type Parameters 4m
- Multiple Type Parameter Bounds 4m
- Raw Types 2m
- Generics and Inheritance 4m
- Wildcards 4m
- Wildcard Capture 6m
- Using Wildcards in Practice 6m
- Understanding Wildcards in Method Signatures 6m
- Exercise 06 - Use Wildcards in a Method Signature 0m
- Type Erasure 4m
- Limitations Caused by Type Erasure 4m
- Heap Pollution 5m
- Generics and Arrays 5m
- Generics and Variable Arguments 8m
- Module Summary 6m
- Quick Review of Lambda Expressions 6m
- Functional Interfaces 5m
- Standard Functional Interfaces 5m
- Capturing Local Variables in Lambda Expressions 2m
- Functional Programming with Lambda Expressions 6m
- Working with Checked Exceptions in Lambda Expressions 4m
- Method References 8m
- Checkpoint 09 - Use a Lambda and Method Reference 0m
- Module Summary 4m