Course Outline
Introduction to Java
- History and evolution of Java
- Overview of Java versions and updates
- What’s new in Java 17
- Setting up Java Development Kit (JDK 17) and IDE
Java Program Structure
- Writing a simple Java program
- Java syntax overview
- Compiling and running Java applications
Data Types and Variables
- Primitive data types and wrapper classes
- Declaring variables and constants
- Type conversion and casting
Operators in Java
- Arithmetic, relational, logical, and bitwise operators
- Operator precedence and associativity
Control Flow Statements
- Conditional statements (if-else, switch)
- Looping constructs (for, while, do-while)
- Enhanced switch expressions (Java 17 feature)
Introduction to OOP Concepts
- Classes and Objects
- Encapsulation, Inheritance, Polymorphism, and Abstraction
Creating Classes and Objects
- Declaring and initializing objects
- The this keyword
- Constructors (default and parameterized)
Inheritance
- Extending classes (extends keyword)
- Method overriding and super keyword
- Abstract classes and methods
Polymorphism
- Compile-time vs. runtime polymorphism
- Method overloading and overriding
Interfaces
- Defining and implementing interfaces
- Functional interfaces and default methods
Record Classes (Java 17 feature)
- Understanding records in Java 17
- How records simplify data encapsulation
Generics in Java
- Understanding type parameters
- Generic classes, methods, and interfaces
- Bounded types and wildcards
Exception Handling
- Types of exceptions (checked and unchecked)
- Try-catch-finally blocks
- Throwing and catching exceptions
- Creating custom exceptions
Java Collections Framework
- List, Set, Map, and Queue interfaces
- Popular implementations: ArrayList, HashMap, HashSet
- Iterators and enhanced for loops
Lambda Expressions and Functional Programming
- Introduction to lambda expressions
- Syntax and usage
- Functional interfaces
Stream API
- Overview of Java Streams
- Stream operations (filtering, mapping, reducing)
- Parallel streams and performance considerations
Sealed Classes
- Defining and using sealed classes
- Permitted subclasses and restrictions
Pattern Matching for instanceof (Java 17 feature)
- Simplifying type checks with pattern matching
Text Blocks
- Working with multi-line text blocks in Java
- Comparison with traditional string handling
Records and Serialization Improvements
- Serialization and backward compatibility
- How records enhance code readability and maintenance
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
Requirements
- Basic knowledge in programming
Audience
- Software developers
- Programmers
Delivery Options
Private Group Training
Our identity is rooted in delivering exactly what our clients need.
- Pre-course call with your trainer
- Customisation of the learning experience to achieve your goals -
- Bespoke outlines
- Practical hands-on exercises containing data / scenarios recognisable to the learners
- Training scheduled on a date of your choice
- Delivered online, onsite/classroom or hybrid by experts sharing real world experience
Private Group Prices RRP from €11400 online delivery, based on a group of 2 delegates, €3600 per additional delegate (excludes any certification / exam costs). We recommend a maximum group size of 12 for most learning events.
Contact us for an exact quote and to hear our latest promotions
Public Training
Please see our public courses
Testimonials (5)
That we got a complex overview also about the context - for example why do we need some annotations and what they mean. I liked the practical part of the training - having to manually run the commands and call the rest api's
Alina - ACCENTURE SERVICES S.R.L
Course - Quarkus for Developers
The extra information that was shared, the training was not straightforward groovy, which was nice.
Covenant - Vodacom
Course - Groovy Programming
the trainer can clearly explain the topic and can answer every question.
Hannah Mae Lubigan - Security Bank Corporation
Course - Advanced Spring Boot
Training style and trainer helps solve issues encountered during the exercises.
Carl Angelo Gonzales - Security Bank Corporation
Course - Spring Boot for Beginners
The breadth of the topis covered was quite a bit and the trainer tried to do justice to that.