Take advantage of spring savings with up to 50% off ILT training.

Checkout

Cart () Loading...

    • Quantity:
    • Delivery:
    • Dates:
    • Location:

    $

Contact Sales

Basic Java Programming for Developers New to OO

Hands-on Java Workshop: Gain the skills required to create efficient, scalable high-performance applications using Java.

Geared for experienced developers, Basic Java Programming for Developers New to OO, this hands-on, workshop-style course will provide you with an immersive learning experience that will expand your skillset and open doors to new opportunities within the ever-growing technology landscape. Mastering Java and its powerful capabilities will provide you with the competitive edge you need to stand out in today's fast-paced development world.

Working in a hands-on learning environment led by our expert coach, you’ll thoroughly explore the foundations of the Java platform, essential programming concepts, and advanced topics, ensuring you acquire a strong understanding of the language and its ecosystem. The object-oriented programming principles taught in this course promote code reusability and maintainability, enabling you to streamline development processes and reduce long-term costs.

As you progress through the course, you will also gain familiarity with using an IDE, enhancing your development workflow and collaboration with other Java developers, enabling you to integrate seamlessly into new projects and teams. You’ll also gain practical experience in applying the concepts and techniques learned, solidifying your newly acquired skills and facilitating their direct application in real-world scenarios. You’ll exit this course empowered to create robust, scalable, and efficient Java-based applications that drive innovation and growth for your organization.

This course uses Java 21, which also covers the fundamental concepts and techniques in Java 11 and 17. This course is suited for Java 11, Java 17 and Java 21 skills development. Earlier versions are available. Please inquire for options.

NOTE: Developers new or newer to programming should consider the TT2000 Getting Started with Programming, OO and Java Basics as an alternative.

GK# 101020 Vendor# TT2120
Vendor Credits:
No matching courses available.
Start learning as soon as today! Click Add To Cart to continue shopping or Buy Now to check out immediately.
Access Period:
Scheduling a custom training event for your team is fast and easy! Click here to get started.

Who Should Attend?

In order to be successful in this course you should have incoming hands-on experience with another programming language. This course is not for non-developers or new developers. Possible roles that may attend this course include:

  • Software Developers: Professionals who have been working with other programming languages and want to expand their skillset by learning Java and its object-oriented features.
  • Web Developers: Those who work on web applications and want to enhance their back-end development capabilities with Java.
  • Mobile App Developers: Developers who wish to enter the world of Android app development, where Java is a widely-used language for creating mobile applications.
  • Full-Stack Developers: Professionals who have experience with front-end technologies and want to deepen their knowledge of back-end development using Java.
  • Game Developers: Developers who are interested in creating games for various platforms, including desktop, mobile, and web, using Java as their primary programming language.

What You'll Learn

Working in an interactive learning environment, led by our expert facilitator, you’ll learn to:

  • Understand the fundamentals of the Java platform, its lifecycle, and the responsibilities of the Java Virtual Machine (JVM), enabling you to create efficient and reliable Java applications.
  • Gain proficiency in using the JDK, including navigating its file structure, utilizing the command-line compiler, and executing Java applications, ensuring a smooth development process.
  • Master the IDE, including its interface, project management, and module creation, to enhance productivity, collaboration, and overall development workflow.
  • Develop solid skills in writing Java classes, defining instance variables, creating object instances, and implementing main methods, forming a strong foundation in Java programming.
  • Acquire expertise in adding methods to Java classes, writing constructors, and leveraging the 'this' keyword, allowing you to create more sophisticated and customizable Java applications.
  • Comprehend and apply core object-oriented programming concepts, such as encapsulation, inheritance, and polymorphism, to create modular, maintainable, and reusable code.
  • Enhance your knowledge of Java language statements, including arithmetic, comparison, and logical operators, as well as loops and switch expressions, to develop more complex and efficient Java applications.
  • Learn to effectively handle exceptions, create custom exception classes, and use try/catch blocks to ensure the robustness and reliability of your Java applications, minimizing potential runtime issues.
  • Gain proficiency in working with collections in Java, which includes learning about the different collection implementations (Set, List, and Queue), using iterators, and sorting collections. This will enable you to manage data effectively in your Java programs.

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

  • Switch Expressions
  • Text blocks
  • Pattern matching for instanceof
  • Introduce records as carrier of immutable data

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

  • Sequenced Collections
  • Pattern matching in Switch statements
  • Record Patterns

Course Outline

Session: Java: A First Look

Lesson: The Java Platform

  • Java Platforms
  • Lifecycle of a Java Program
  • Responsibilities of JVM
  • Documentation and Code Reuse
  • Java Platforms
  • Lifecycle of a Java Program
  • Responsibilities of JVM
  • Documentation and Code Reuse

Lesson: Using the JDK

  • Setting Up Environment
  • Locating Class Files
  • Compiling Package Classes
  • Source and Class Files
  • Java Applications
  • Setting Up Environment
  • Locating Class Files
  • Compiling Package Classes
  • Source and Class Files
  • Java Applications

Lesson: The Eclipse Paradigm

  • Workbench and Workspace
  • Views
  • Editors
  • Perspectives
  • Projects
  • Workbench and Workspace
  • Views
  • Editors
  • Perspectives
  • Projects

Session: Getting Started with Java

Lesson: Writing a Simple Class

  • Classes in Java
  • Class Modifiers and Types
  • Class Instance Variables
  • Primitives vs. Object References
  • Creating Objects
  • Classes in Java
  • Class Modifiers and Types
  • Class Instance Variables
  • Primitives vs. Object References
  • Creating Objects

Lesson: Adding Methods to the Class

  • Passing Parameters Into Methods
  • Returning a Value From a Method
  • Overloaded Methods
  • Constructors
  • Optimizing Constructor Usage
  • Passing Parameters Into Methods
  • Returning a Value From a Method
  • Overloaded Methods
  • Constructors
  • Optimizing Constructor Usage

Session: OO Concepts

Lesson: Object-Oriented Programming

  • Real-World Objects
  • Classes and Objects
  • Object Behavior
  • Methods and Messages
  • Real-World Objects
  • Classes and Objects
  • Object Behavior
  • Methods and Messages

Lesson: Inheritance, Abstraction, and Polymorphism

  • Encapsulation
  • Inheritance
  • Method Overriding
  • Polymorphism
  • Encapsulation
  • Inheritance
  • Method Overriding
  • Polymorphism

Session: Essential Java Programming

Lesson: Language Statements

  • Operators
  • Comparison and Logical Operators
  • Looping
  • Continue and Break Statements
  • The switch Statement
  • The for-each() Loop
  • Operators
  • Comparison and Logical Operators
  • Looping
  • Continue and Break Statements
  • The switch Statement
  • The for-each() Loop

Lesson: Using Strings

  • Create an instance of the String class
  • Test if two strings are equal
  • Get the length of a string Parse a string for its token components
  • Perform a case-insensitive equality test
  • Build up a string using StringBuffer
  • Contrast String, StringBuffer, and StringBuilder
  • Create an instance of the String class
  • Test if two strings are equal
  • Get the length of a string Parse a string for its token components
  • Perform a case-insensitive equality test
  • Build up a string using StringBuffer
  • Contrast String, StringBuffer, and StringBuilder

Lesson: Specializing in a Subclass

  • Extending a Class
  • Casting
  • The Object Class
  • Default Constructor
  • Implicit Constructor Chaining
  • Extending a Class
  • Casting
  • The Object Class
  • Default Constructor
  • Implicit Constructor Chaining

Lesson: Fields and Variables

  • Instance vs. Local Variables: Usage Differences
  • Data Types
  • Default Values
  • Block Scoping Rules
  • Final and Static Fields
  • Static Methods
  • Instance vs. Local Variables: Usage Differences
  • Data Types
  • Default Values
  • Block Scoping Rules
  • Final and Static Fields
  • Static Methods

Lesson: Using Arrays

  • Arrays
  • Accessing the Array
  • Multidimensional Arrays
  • Copying Arrays
  • Variable Arguments
  • Arrays
  • Accessing the Array
  • Multidimensional Arrays
  •  Copying Arrays
  • Variable Arguments

Lesson: Local-Variable Type Inference

  • Type inference
  • Infering Types of Local Variables
  • The var Reserved Type name
  • Benefits of Using var
  • Backward Compatibilty
  • Type inference
  • Infering Types of Local Variables
  • The var Reserved Type name
  • Benefits of Using var
  • Backward Compactibilty

Lesson: Java Packages and Visibility

  • Class Location of Packages
  • The Package Keyword
  • Importing Classes
  • Executing Programs
  • Visibility in the Modular System
  • Java Naming Conventions
  • Class Location of Packages
  • The Package Keyword
  • Importing Classes
  • Executing Programs
  • Visibility in the Modular System
  • Java Naming Conventions

Session: Object Oriented Development

Lesson: Inheritance and Polymorphism

  • Polymorphism: The Subclasses
  • Upcasting vs. Downcasting
  • Calling Superclass Methods From Subclass
  • The final Keyword
  • Polymorphism: The Subclasses
  • Upcasting vs. Downcasting
  • Calling Superclass Methods From Subclass
  • The final Keyword

Lesson: Interfaces and Abstract Classes

  • Separating Capability from Implementation
  • Abstract Classes
  • Implementing an Interface
  • Abstract Classes vs. Interfaces
  • Separating Capability from Implementation
  • Abstract Classes
  • Implementing an Interface
  • Abstract Classes vs. Interfaces

Session: Exception Handling

Lesson: Introduction to Exception Handling

  • Exception Architecture
  • Throwing Exceptions
  • Checked vs. Unchecked Exceptions
  • Exception Architecture
  • Throwing Exceptions
  • Checked vs. Unchecked Exceptions

Lesson: Exceptions

  • Handling Multiple Exceptions
  • Automatic Closure of Resources
  • Creating Your Own Exceptions
  • Handling Multiple Exceptions
  • Automatic Closure of Resources
  • Creating Your Own Exceptions

Session: Java Developer's Toolbox

Lesson: Utility Classes

  • Wrapper Classes
  • Autoboxing/Unboxing
  • Enumeration Syntax
  • Using Static imports
  • Wrapper Classes
  • Autoboxing/Unboxing
  • Enumeration Syntax
  • Using Static imports

Lesson: Java Date/Time

  • The Date and Calendar classes
  • Introduce the new Date/Time API
  • LocalDate, LocalDateTime, etc.
  •  Formatting Dates
  • Working with time zones
  • Manipulate date/time values
  • The Date and Calendar classes
  • Introduce the new Date/Time API
  • LocalDate, LocalDateTime, etc.
  • Formatting Dates
  • Working with time zones
  • Manipulate date/time values

Session: Advanced Java Programming

Lesson: Introduction to Generics

  • Generics and Subtyping
  • Bounded Wildcards
  • Generic Methods
  • Legacy Calls To Generics
  • When Generics Should Be Used
  • Generics and Subtyping
  • Bounded Wildcards
  • Generic Methods
  • Legacy Calls To Generics
  • When Generics Should Be Used

Lesson: Lambda Expressions and Functional Interface

  • Lambda Expression Syntax
  • Functional Interfaces
  • Type Inference in Java 8
  • Method references
  • Lambda Expression Syntax
  • Functional Interfaces
  • Type Inference in Java 8
  • Method references

Session: Working with Collections

Lesson: Collections

  • Characterizing Collections
  • Collection Interface Hierarchy
  • The Set, List and Queue Interfaces
  • Map Interfaces
  • Characterizing Collections
  • Collection Interface Hierarchy
  • The Set, List and Queue Interfaces
  • Map Interfaces

Lesson: Using Collections

  • Collection Sorting
  • Comparators
  • Using the Right Collection
  • Lambda expressions in Collections
  • Collection Sorting
  • Comparators
  • Using the Right Collection
  • Lambda expressions in Collections

Session: Stream API

Lesson: Streams

  • Processing Collections of data
  • The Stream interface
  • Reduction and Parallelism
  • Filtering collection data
  • Sorting Collection data
  • Map collection data
  • Find elements in Stream
  • Numeric Streams
  • Create infinite Streams
  • Sources for using Streams
  • Processing Collections of data
  • The Stream interface
  • Reduction and Parallelism
  • Filtering collection data
  • Sorting Collection data
  • Map collection data
  • Find elements in Stream
  • Numeric Streams
  • Create infinite Streams
  • Sources for using Streams

Lesson: Collectors

  • Creating Collections from a Stream
  • Group elements in the Stream
  • Multi-level grouping of elements
  • Partitioning Streams
  • Creating Collections from a Stream
  • Group elements in the Stream
  • Multi-level grouping of elements
  • Partitioning Streams

Session: The Java Module System

Lesson: Introduction to the Module System

  • Introduce Project Jigsaw
  • Classpath and Encapsulation
  • The JDK internal APIs
  • Java 9 Platform modules
  • Defining application modules
  • Define module dependencies
  • Implicit dependencies
  • Implied Readability
  • Exporting packages
  • Introduce Project Jigsaw
  • Classpath and Encapsulation
  • The JDK internal APIs
  • Java 9 Platform modules
  • Defining application modules
  • Define module dependencies
  • Implicit dependencies
  • Implied Readability
  • Exporting packages

Additional Topics: Time Permitting

Lesson: Formatting Strings

  • String.format
  • System.out.printf
  • The Formatter class
  • Using the formatting syntax
  • String.format
  • System.out.printf
  • The Formatter class
  • Using the formatting syntax

Lesson: Introduction to Annotations

  • Annotations Overview
  • Working with Java Annotations
  • Annotations Overview
  • Working with Java Annotations

Lesson: Java 12 and beyond

  • Provide an overview of changes since Java 11
  • Introduce Preview Features
  • Records (Java 14)
  • Switch Expressions (Java 12, Java 13, Java 14)
  • Text Blocks (Java 13, Java 14)
  • Helpful NullPointerExceptions (Java 14)
  • Pattern Matching for instanceof (Java 14)
  • Provide an overview of changes since Java 11
  • Introduce Preview Features
  • Records (Java 14)
  • Switch Expressions (Java 12, Java 13, Java 14)
  • Text Blocks (Java 13, Java 14)
  • Helpful NullPointerExceptions (Java 14)
  • Pattern Matching for instanceof (Java 14

Labs Outline

This hands-on course focuses on ‘learning by doing’, combining expert lecture, practical demonstrations and group discussions with plenty of machine-based real-world programming labs and exercises. Student machines are required.

Prerequisites

In order to be successful in this course you should have incoming hands-on experience with another programming language.