- Basic knowledge in programming
Audience
- Software developers
- Programmers
Java 17 is a powerful and versatile language used for building everything from simple desktop apps to large-scale enterprise systems, cloud applications, and data processing pipelines.
This instructor-led, live training (online or onsite) is aimed at intermediate-level software developers who wish to learn the core Java concepts and programming principles of Java 17.
By the end of this training, participants will be able to:
- Understand the advanced features of Java 17, including records, enhanced switch expressions, and pattern matching.
- Utilize the Java Module System to create and use modular Java applications.
- Implement concurrent and asynchronous programming.
- Apply best practices and optimization techniques to write maintainable and efficient Java code.
- Package and deploy Java applications, including creating JAR files and exploring GraalVM for native images.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Introduction to Java
- History and evolution of Java
- Overview of Java versions and updates
- What’s new in Java 17
Control Flow Statements
- Enhanced switch expressions (Java 17 feature)
Record Classes (Java 17 feature)
- Understanding records in Java 17
- How records simplify data encapsulation
Pattern Matching for instanceof (Java 17 feature)
- Simplifying type checks with pattern matching
Deprecation and Removal of Features
- Deprecated APIs in Java 17
- Removal of outdated features
Switch Expression Enhancements
- Pattern matching in switch
- Using switch expressions for cleaner code
Foreign Function & Memory API (Incubator)
- Overview of the incubator module
- Working with native code in Java
Java Module System (Project Jigsaw)
- Introduction to modules in Java
- Creating and using modules
- Module descriptors and module-info.java
- Advantages of modularization
Concurrency and Multithreading
- Introduction to threads and multithreading
- Runnable interface and Callable interface
- Synchronization, locks, and thread safety
Asynchronous Programming with CompetableFuture
- Writing asynchronous code
- Using CompetableFuture for non-blocking operations
Deploying Java Applications
- Creating and executing JAR files
- Packaging and distributing Java applications
- Introduction to GraalVM (optional)
Best Practices and Code Optimization
- Writing efficient and maintainable Java code
- Common performance pitfalls and how to avoid them
- Code refactoring techniques
Summary and Next Steps