About the Advanced Java Programming course
Advanced Java Programming builds on the core Java language. It focuses on techniques that help developers write clearer and more reliable code.
You will learn advanced language features, important APIs, and modern Java capabilities. The aim is not only to learn new syntax. It is to understand how to use Java more effectively.
This helps developers write code that is easier to maintain, extend, and debug.
This course is for programmers who already know Java and want to improve their skills and write better production code.
Delegate feedback
Feedback from delegates who have attended this course:L. Chanderman
A. Rampershad
N. Chuma
L. Matuka
L. Thale
L. Cloete
Intended audience
This course is useful if:- You work with Java and need a clearer understanding of the advanced parts of the language.
- You are responsible for Java code that must be reliable, maintainable, and safe to change.
Prerequisites
You should already be comfortable with the core features of the Java language, either through our Java Programming course or equivalent experience.
At least six months of practical Java coding experience is recommended so that the advanced topics build on a solid foundation.
Course details
Price: R15,800 excluding VAT per delegate.
Included:
- Electronic course material.
- Attendance certificate (PDF).
Duration: 5 days.
Delivery: Virtual classroom
See how virtual training works.
See the course schedule for upcoming dates.
Booking information
Email your booking to info@incusdata.com. A purchase order, or completed enrolment form is sufficient.
We will confirm the booking and issue an invoice.
Course contents
Java Overview
- Review of the Java platform and editions.
- Modern Java architecture and ecosystem.
- Overview of distributed systems (RPC, RMI, CORBA, EJB).
- Introduction to enterprise Java and JEE architecture.
- Web services overview: SOAP vs REST.
- SOLID design principles for maintainable code.
Modern Java Language Features
- Assertions and defensive programming.
- Annotations, enums and varargs.
- Generics and type inference.
- Enhanced for loops and auto-boxing.
- Multi-catch and try-with-resources.
- Functional programming and lambda expressions.
- Default and private methods in interfaces.
- Records, sealed classes and pattern matching.
- Switch expressions and modern control flow.
- Recent Java language enhancements and evolution.
Java Architecture and Runtime
- JavaBeans and canonical class design.
- Reflection API.
- Memory management and garbage collection.
- Writing maintainable and extensible classes.
Persistence and Data Access
- Object serialization.
- XML encoding and Java Architecture for XML Binding (JAXB).
- File input and output.
- Java Database Connectivity (JDBC).
- Introduction to the Java Persistence API (JPA).
Collections and Data Structures
- Collections framework overview: Lists, Sets, Maps and Queues.
- Linked lists, trees and hash tables.
- Iterator and Enumeration interfaces.
- Choosing the right collection.
- Algorithm efficiency and Big-O notation.
- Sorting and searching techniques.
Concurrency and Multithreading
- Thread creation and lifecycle.
- Runnable vs Thread.
- Thread synchronization and coordination.
- Timers and scheduled tasks.
- The Concurrency API.
- Executors and ExecutorServices.
- Callables, Futures and asynchronous tasks.
- Virtual threads and modern concurrency.
Generics
- Designing generic classes and methods.
- Generic syntax and type inference.
- Type erasure.
- Wildcards and bounded types.
Lambdas and Streams
- Functional programming concepts.
- @FunctionalInterface annotation.
- Lambda expressions.
- Method and constructor references.
- Stream pipelines.
- Working with streams and functional operations.
Java Modularity
- Java module system overview.
- Module declarations and descriptors.
- Exports and requires directives.
- Services and ServiceLoader.
- Reflection and modular applications.
- Unnamed and automatic modules.