651-905-3729 Microsoft Silver Learning Partner EC Counsel Reseller compTIA Authorized Partner

Core Java Programming Developer's Workshop

5 Days

Description

Core Java Programming Developer’s Workshop is a five-day, hands-on training course designed for developers looking to learn Java The course offers a blend of practical exercises and best practices, focusing on writing efficient, maintainable, and scalable object-oriented programs using Java 21. Participants will explore advanced development techniques and new features aimed at boosting performance and productivity. 

Key Java enhancements introduced since version 11, such as Records, Sealed Classes, Text Blocks, and Pattern Matching, as well as various API updates, will be thoroughly covered. By the end of the workshop, developers will not only have the skills to work confidently on Java 8, Java 11, and Java 17 projects, but they will also be prepared to tackle modern applications with the latest innovations in Java 21. This course equips participants with the tools needed to drive rapid application development in today’s evolving software landscape. 

This skills-centric course is about 50% hands-on lab and 50% lecture. It is designed to equip attendees with foundational object-oriented (OO) coding and Java development skills, blending the most current, effective techniques with industry best practices. Throughout the course, students will be guided through progressively advanced topics, with each session combining lectures, comprehensive lab exercises, and in-depth lab reviews. 

Our highly experienced instructors and mentors bring years of real-world, on-the-job experience into the classroom, ensuring an engaging and practical learning environment. Under their guidance, attendees will gain proficiency in the following areas: 

  • Object-Oriented Programming (OOP): Grasp the fundamentals of OO programming and understand its advantages in modern software development. 
  • Java Language Essentials: Learn the core concepts, strengths, and weaknesses of the Java language, and how it relates to the OO programming paradigm and the Object Model. 
  • Exception Handling: Master Java’s exception handling mechanisms. 
  • Modular System (Project Jigsaw): Work with Java’s modular system to better structure and maintain applications. 
  • Key OO Concepts: Use classes, inheritance, and polymorphism effectively. 
  • Advanced Language Features: Explore collections, generics, autoboxing, enumerations, and data processing using Lambda expressions and the Stream API. 
  • Interface Features: Implement abstract, static, and private methods in interfaces. 
  • Modern Java Enhancements: Dive into newer features such as switch expressions, text blocks, pattern matching for instanceof, and the introduction of records for immutable data handling. 
  • Java Tooling: Utilize the comprehensive set of tools available within the programming environment for Java development. 

Specific Java 21 features that are covered in the course include: 

  • Pattern Matching in Switch: This feature allows type checks and object deconstruction directly within a switch, simplifying complex conditional logic and reducing boilerplate code. 
  • Record Patterns: Record patterns enable concise deconstruction of records in switch expressions or other patterns, streamlining immutable data handling with fewer lines of code. 

Audience

This is an basic-level programming course designed for attendees with prior development experience in another language. This course is not geared for non-developers.

Upcoming Classes

Virtual Classroom Live
December 01, 2025

$2,500.00
5 Days    10 AM ET - 6 PM ET
view class details and enroll
Virtual Classroom Live
February 09, 2026

$2,500.00
5 Days    10 AM ET - 6 PM ET
view class details and enroll
Virtual Classroom Live
April 06, 2026

$2,500.00
5 Days    10 AM ET - 6 PM ET
view class details and enroll
Private Training Available
No date scheduled, don’t see a date that works for you or looking for a private training event, please call 651-905-3729 or submit a request for further information here.
request a private session or new date

Course Overview

1. The Java Platform 

  • Introduce the Java Platform 
  • Explore the Java Standard Edition 
  • Discuss the lifecycle of a Java Program 
  • Explain the responsibilities of the JVM 
  • Executing Java programs 
  • Garbage Collection 

2. Using the JDK 

  • Explain the JDK’s file structure 
  • Use the command line compiler to compile a Java class 
  • Use the command line Java interpreter to run a Java application class 
  • Documentation and Code Reuse 
  • Lab: Exploring MemoryViewer 
  • Lab: The SwingSet demo 

3. Using the IntelliJ IDE 

  • Introduce the IntelliJ IDE 
  • The Basics of the IntelliJ interface 
  • IntelliJ Projects and Modules 
  • Creating and running Java applications 
  • Tutorial: Working with IntelliJ 2023.2 (Community Edition) 

4. Writing a Simple Class 

  • Write a Java class that does not explicitly extend another class 
  • Define instance variables for a Java class 
  • Create object instances 
  • Primitives vs Object References 
  • Implement a main method to create an instance of the defined class 
  • Java keywords and reserved words 
  • Lab: Create a Simple Class 

5. Adding Methods to the Class 

  • Write a class with accessor methods to read and write instance variables 
  • Write a constructor to initialize an instance with data 
  • Write a constructor that calls other constructors of the class to benefit from code reuse 
  • Use the this keyword to distinguish local variables from instance variables 
  • Introducing annotations 
  • Deprecating classes and methods 
  • Lab: Create a Class with Methods 

6. Object-Oriented Programming 

  • Real-World Objects 
  • Classes and Objects 
  • Object Behavior 
  • Methods and Messages 
  • Lab: Define and use a New Java class 
  • Lab: Define and use Another Java Class (optional) 

7. Language Statements 

  • Arithmetic operators 
  • Operators to increment and decrement numbers 
  • Comparison operators 
  • Logical operators 
  • Return type of comparison and logical operators 
  • Use for loops 
  • Switch Expressions 
  • Switch Expressions and yield 
  • Lab: Looping (optional) 
  • Lab: Language Statements 
  • Lab: Switch Expressions 

8. Using Strings and Text Blocks 

  • Create an instance of the String class 
  • Test if two strings are equal 
  • Perform a case-insensitive equality test 
  • Contrast String, StringBuffer, and StringBuilder 
  • Compact Strings 
  • Text Blocks 
  • Unicode support 
  • Lab: Fun with Strings 
  • Lab: Using StringBuffers and StringBuilders 

9. Fields and Variables 

  • Discuss Block Scoping Rules 
  • Distinguish between instance variables and method variables within a method 
  • Explain the difference between the terms field and variable 
  • List the default values for instance variables 
  • Final and Static fields and methods 
  • Lab: Field Test 

10. Specializing in a Subclass 

  • Constructing a class that extends another class 
  • Implementing equals and toString 
  • Writing constructors that pass initialization data to parent constructor 
  • Using instanceof to verify type of an object reference 
  • Overriding subclass methods 
  • Pattern matching for instanceof 
  • Safely casting references to a more refined type 
  • Lab: Creating Subclasses 

11. Using Arrays 

  • Declaring an array reference 
  • Allocating an array 
  • Initializing the entries in an array 
  • Writing methods with a variable number of arguments 
  • Lab: Creating an Array 

12. Records 

  • Data objects in Java 
  • Introduce records as carrier of immutable data 
  • Defining records 
  • The Canonical constructor 
  • Compact constructors 
  • Lab: Records 

13. Java Packages and Visibility 

  • Use the package keyword to define a class within a specific package 
  • Discuss levels of accessibility/visibility 
  • Using the import keyword to declare references to classes in a specific package 
  • Using the standard type naming conventions 
  • Introduce the Java Modular System 
  • Visibility in the Java Modular System 

14. Utility Classes 

  • Introduce the wrapper classes 
  • Explain Autoboxing and Unboxing 
  • Converting String representations of primitive numbers into their primitive types 
  • Defining Enumerations 
  • Using static imports 
  • Introduce the Date/Time API 
  • LocalDate / LocalDateTime etc. 
  • Apply text formatting 
  • Using System.out.printf 
  • Lab: Enumerations 
  • Lab: TextBlocks 
  • Lab: Working with Dates (optional) 

15. Inheritance and Polymorphism 

  • Write a subclass with a method that overrides a method in the superclass 
  • Group objects by their common supertype 
  • Utilize polymorphism 
  • Cast a supertype reference to a valid subtype reference 
  • Use the final keyword on methods and classes to prevent overriding 
  • Lab: Salaries - Polymorphism 

16. Interfaces and Abstract Classes 

  • Define supertype contracts using abstract classes 
  • Implement concrete classes based on abstract classes 
  • Define supertype contracts using interfaces 
  • Implement concrete classes based on interfaces 
  • Explain advantage of interfaces over abstract classes 
  • Explain advantage of abstract classes over interfaces 
  • Lab: Interfaces 

17. Sealed Classes 

  • Introduce sealed classes 
  • The sealed and permits modifier 
  • Sealed interfaces 
  • Sealed classes and pattern matching 
  • Lab: Sealed Classes 

18. Pattern Matching 

  • Pattern Matching in switch statements 
  • Pattern Matching and sealed classes 
  • Record Patterns 
  • Lab: Pattern Matching 

19. Introduction to Exception Handling 

  • Introduce the Exception architecture 
  • Defining a try/catch blocks 
  • Checked vs Unchecked exceptions 
  • Lab: Exceptions 

20. Exceptions 

  • Defining your own application exceptions 
  • Automatic closure of resources 
  • Suppressed exceptions 
  • Handling multiple exceptions in one catch 
  • Enhanced try-with-resources 
  • Helpful NullPointerException(s) 
  • Lab: Exceptional 
  • Lab: Helpful Nullpointers (optional) 

21. Building Java Applications 

  • Explain the steps involved in building applications 
  • Define the build process 
  • Introduce build scripts 
  • Explain the standard folder layout 
  • Resolving project dependencies 
  • Tutorial: Importing code Using Maven 

22. Introduction to Generics 

  • Generics and Subtyping 
  • Bounded Wildcards 
  • Generic Methods 
  • Lab: Working with Generics 

23. Introducing Lambda Expressions and Functional Interfaces 

  • Understanding the concept of functional programming 
  • Understanding functional interfaces 
  • Lambda's and type inference 
  • Lab: Lambdas 

24. Collections 

  • Provide an overview of the Collection API 
  • Review the different collection implementations (Set, List and Queue) 
  • Explore how generics are used with collections 
  • Examine iterators for working with collections 
  • Sequenced Collections 
  • Lab: Create a simple Game using Collections 

25. Using Collections 

  • Collection Sorting 
  • Comparators 
  • Using the Right Collection 
  • Lambda expressions in Collections 
  • Sequenced Sets 
  • Lab: Using Collections 

26. Streams 

  • Understanding the problem with collections in Java 
  • Thinking of program solutions in a declarative way 
  • Use the Stream API to process collections of data 
  • Understand the difference between intermediate and terminal stream operations 
  • Filtering elements from a Stream 
  • Finding element(s) within a Stream 
  • Collecting the elements from a Stream into a List 
  • Lab: Working with Streams 

27. Collectors 

  • Using different ways to collect the items from a Stream 
  • Grouping elements within a stream 
  • Gathering statistics about numeric property of elements in a stream 
  • Lab: Collecting 

Additional Topic: Time Permitting 

These topics will be included in your course materials but may or may not be presented during the live class depending on the pace of the course and attendee skill level and participation. 

1. Introduction to Annotations 

  • Discuss how annotations work in Java 
  • Understand what is required to work with Java’s annotations 
  • Use annotations 
  • Other technologies that are using annotations 

2. Java Data Access JDBC API 

  • Connecting to a database using JDBC 
  • Executing a statement against a database that returns a ResultSet 
  • Setting up and working with PreparedStatements 
  • Extracting multiple rows of data from a ResultSet 
  • Inserting, updating and deleting rows in a table 

Upcoming Classes

Virtual Classroom Live
December 01, 2025

$2,500.00
5 Days    10 AM ET - 6 PM ET
view class details and enroll
Virtual Classroom Live
February 09, 2026

$2,500.00
5 Days    10 AM ET - 6 PM ET
view class details and enroll
Virtual Classroom Live
April 06, 2026

$2,500.00
5 Days    10 AM ET - 6 PM ET
view class details and enroll
Private Training Available
No date scheduled, don’t see a date that works for you or looking for a private training event, please call 651-905-3729 or submit a request for further information here.
request a private session or new date

Prerequisites

This is an basic-level programming course designed for attendees with prior development experience in another language. This course is not geared for non-developers.

Upcoming Classes

Virtual Classroom Live
December 01, 2025

$2,500.00
5 Days    10 AM ET - 6 PM ET
view class details and enroll
Virtual Classroom Live
February 09, 2026

$2,500.00
5 Days    10 AM ET - 6 PM ET
view class details and enroll
Virtual Classroom Live
April 06, 2026

$2,500.00
5 Days    10 AM ET - 6 PM ET
view class details and enroll
Private Training Available
No date scheduled, don’t see a date that works for you or looking for a private training event, please call 651-905-3729 or submit a request for further information here.
request a private session or new date