Course Code: java17
Duration: 35 hours
Prerequisites:
  • Basic knowledge in programming

Audience

  • Software developers
  • Programmers
Overview:

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 core Java concepts and programming principles.
  • Write, compile, and run Java applications using Java 17.
  • Utilize the new features and enhancements introduced in Java 17.
  • Work with object-oriented programming (OOP) concepts in Java.
  • Implement advanced Java features like lambdas, streams, and modules.

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.
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

Sites Published:

United Arab Emirates - Java 17

Qatar - Java 17

Egypt - Java 17

Saudi Arabia - Java 17

South Africa - Java 17

Brasil - Java 17

Canada - Java 17

中国 - Java 17

香港 - Java 17

澳門 - Java 17

台灣 - Java 17

USA - Java 17

Österreich - Java 17

Schweiz - Java 17

Deutschland - Java 17

Czech Republic - Java 17

Denmark - Java 17

Estonia - Java 17

Finland - Java 17

Greece - Java 17

Magyarország - Java 17

Ireland - Java 17

Luxembourg - Java 17

Latvia - Java 17

España - Java 17

Italia - Java 17

Lithuania - Java 17

Nederland - Java 17

Norway - Java 17

Portugal - Java 17

România - Java 17

Sverige - Java 17

Türkiye - Java 17

Malta - Java 17

Belgique - Java 17

France - Java 17

日本 - Java 17

Australia - Java 17

Malaysia - Java 17

New Zealand - Java 17

Philippines - Java 17

Singapore - Java 17

Thailand - Java 17

Vietnam - Java 17

India - Java 17

Argentina - Java 17

Chile - Java 17

Costa Rica - Java 17

Ecuador - Java 17

Guatemala - Java 17

Colombia - Java 17

México - Java 17

Panama - Java 17

Peru - Java 17

Uruguay - Java 17

Venezuela - Java 17

Polska - Java 17

United Kingdom - Java 17

South Korea - Java 17

Pakistan - Java 17

Sri Lanka - Java 17

Bulgaria - Java 17

Bolivia - Java 17

Indonesia - Java 17

Kazakhstan - Java 17

Moldova - Java 17

Morocco - Java 17

Tunisia - Java 17

Kuwait - Java 17

Oman - Java 17

Slovakia - Java 17

Kenya - Java 17

Nigeria - Java 17

Botswana - Java 17

Slovenia - Java 17

Croatia - Java 17

Serbia - Java 17

Bhutan - Java 17

Nepal - Java 17

Uzbekistan - Java 17