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

Introduction to Java 11 Using Eclipse

5 Days

Description

This course introduces the Java programming language and how to develop Java applications using Eclipse. Students learn the syntax of the Java programming language, object-oriented programming using Java, exception handling, generics, collections, and file input/output (I/O). During the course, students will develop and test Java applications using Eclipse. This course covers Java SE 11.

Target Audience

Programmers who are interested in adding Java to their skills.

Skills Gained

  • Apply OOP principles
  • Design OO applications using abstraction, encapsulation, modularity and hierarchy
  • Use Java exceptions to guarantee graceful error recovery for your application
  • Create and use inner classes in your program to make them concise and clear
  • Do input/output using Java
  • Create servlets and JavaServer Pages
  • Use Eclipse for Java application development

No Upcoming Public Classes

There are currently no public events available for this course. However, you can submit a request for a new date and we will try our best to get you into a Introduction to Java 11 Using Eclipse class.

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

Overview of Java

  • History Of Java
  • Java Release Cycle
  • Benefits Of Java
  • What Is Java?
  • What's This "Virtual Machine"?
  • Comparison to Other Languages
  • Java Programs
  • Basic Java Development Tools
  • Java Editions
  • Example – HelloWorld
  • Java Classes
  • Main Methods
  • Statements
  • Summary

Java Tools in Eclipse

  • Eclipse Platform
  • Eclipse Workspace
  • Perspectives, Views & Editors
  • Basic Operations with Eclipse Views and Perspectives
  • The Java Perspective
  • The Debug Perspective
  • Navigator View
  • Package Explorer
  • Outline View
  • Problems View
  • Eclipse Preferences
  • Build and Validation
  • Code Completion, Templates and Snippets
  • Searching
  • Configure Compiler Class Path
  • JRE Switching

Basic Object Concepts

  • What Is An Object?
  • State
  • Behavior
  • Encapsulation
  • Encapsulation Examples
  • Classes vs. Objects
  • Inheritance
  • Interfaces
  • Polymorphism
  • Benefits Of Objects

Basic Java Syntax

  • Declaring And Initializing Variables
  • Keywords
  • Coding Tips – Variables
  • Primitive Data Types
  • Logical - boolean
  • Textual - char and String
  • Integral - byte, short, int, long
  • Floating Point - float and double
  • Numeric Literals
  • Strings
  • Creating Strings
  • White Space
  • Comments
  • Coding Tips - Comments
  • Java Statements
  • Coding Tips - Statements
  • Scope of a Variable
  • Local Variable Type Inference
  • System.out/System.in
  • Scanner Class

Operations and Making Decisions

  • Operator Categories
  • Special Situations
  • Binary Operators
  • Integer Division
  • Numeric Promotion
  • Type Conversion Of Primitive Types
  • Unary Operators
  • Relational Operators
  • Logical Operators
  • \"Short Circuited\" Operators
  • Bitwise Operators
  • Shift Operators
  • Overflow And Underflow
  • Assignment Operators
  • Ternary Operator
  • Calculation Errors
  • Operator Precedence
  • Precedence Examples
  • Combining Strings
  • Coding Tips - Operators
  • Control Flow Statements
  • 'if' Statement
  • 'if…else' Statement
  • Nested Statements
  • Coding Tips - if & if-else

Using Classes and Objects

  • Objects, Instances, And Classes
  • What Are Classes?
  • Working With Classes And Objects
  • Instantiation
  • Instance Methods
  • Object References
  • Null Values
  • String Operations
  • "Wrapper" Classes
  • Autoboxing

Writing Classes

  • Why Define Your Own Classes?
  • Encapsulation
  • Elements Of A Class
  • Defining Classes
  • Coding Tips - Class Definitions
  • Fields
  • Defining Fields
  • Coding Tips - Fields
  • Methods
  • Defining Methods
  • Passing Parameters
  • Overloading Methods
  • Coding Tips - Methods
  • Local Variables vs. Instance Variables

Controlling Code Access and Code Organization

  • Controlling Access
  • Data Hiding
  • Encapsulation
  • JavaBeans
  • Packages
  • Naming Packages
  • Declaring Packages In Classes
  • Problems Solved With Packages
  • Package Access
  • Example - Access Modifiers
  • Import Statement
  • Using Classes From Packages
  • Coding Tips - Import Statements
  • Correlation To File Structure
  • Class Path
  • Java Core Packages
  • Java Module System
  • Java API Documentation

Constructors and Class Members

  • Constructors
  • Default Constructor
  • Multiple Constructors
  • Defining Constructors
  • Example - Calling Constructors
  • "Good" Constructors
  • 'this' Keyword
  • Using 'this' to Call a Constructor
  • Using 'this' to Set a Field
  • Class Members
  • Comparison With Instance Members
  • Use Of Class Variables
  • Static Class Methods
  • Use Of Class Methods
  • The Math Class
  • Main Method And Command Line Arguments
  • Declaring Constants
  • Coding Tips - Class Members
  • Useful Standard Class Members

Advanced Control Structures

  • 'switch' Statement
  • Example - switch
  • Switch "Fall Through"
  • Using switch "Fall Through" for Multiple Options
  • Strings in switch Statement
  • 'for' Loop
  • 'while' Loop
  • 'do…while' Loop
  • Break Statement
  • Labeled Statements
  • Continue Statement
  • Coding Tips - Control Structures

Inheritance

  • Inheritance Is…
  • Inheritance Examples
  • Declaring Inheritance
  • Inheritance Hierarchy
  • Access Modifiers Revisited
  • Inherited Members
  • Instances Of A Subclass
  • Role In Reuse
  • Overriding Methods
  • @Override Annotation
  • The super Keyword
  • Example - super Keyword
  • Problems with Constructors
  • Limiting Subclasses
  • Calling Methods in Constructors
  • The Object Class

Arrays

  • Arrays
  • Declaring Arrays
  • Populating Arrays
  • Accessing Arrays
  • Arrays of Objects
  • Array Length
  • Coding Tips - Arrays
  • Array References
  • Multidimensional Arrays
  • Arrays Of Arrays
  • Copying Arrays
  • For-Each loop
  • Command Line Arguments
  • Variable Arguments

Commonly Overridden Methods

  • Overriding Methods
  • Using Eclipse to Override Methods
  • toString()
  • toString() in Object
  • Overriding toString()
  • Comparing Objects
  • Using == vs. equals(..)
  • Overriding equals(..)
  • Complex Comparisons
  • equals(..) Example
  • hashCode()
  • Overriding hashCode()
  • hashCode() Example
  • Generating equals and hashCode

Exceptions

  • What is an Exception
  • Benefits
  • The java.lang.Exception Class
  • How to Work With Exceptions
  • Example Exception Handling
  • The try-catch-finally Statement
  • Flow of Program Control
  • Exception Hierarchy
  • Checked Exceptions
  • Unchecked Exceptions
  • Coding Tips - Exception Types
  • Catching Subclass Exceptions
  • Catching Multiple Exceptions
  • Specifying Thrown Exceptions
  • Rethrowing Exceptions
  • Chaining Exceptions
  • Creating your Own Exception
  • try-with-resources Statement
  • Suppressed Exceptions in try-with-resources

Interfaces and Polymorphism

  • Casting Objects
  • The instanceof Operator
  • Abstract Classes
  • Abstract Class – An Example
  • Interface
  • Interface – An Example
  • Comparable Interface
  • Comparable Example
  • Default Methods
  • Default Method Example
  • Static Methods
  • Private Interface Methods
  • Coding Tips - Superclass or Abstract Class/Interface?
  • Coding Tips – Abstract Class or Interface
  • Polymorphism
  • Conditions for Polymorphism
  • Coding Tips - Leveraging Polymorphism
  • Covariant Return Types

Useful Java Classes

  • Java Logging API
  • Control Flow of Logging
  • Logging Levels
  • Loggers
  • Logging Example
  • Logging Handlers
  • Logging Formatters & Log Manager
  • Logging Configuration File
  • Example Logging Configuration File
  • Logging Filters
  • java.lang.StringBuilder
  • java.util.StringTokenizer
  • java.util.Arrays & java.util.Collections
  • java.util.Random
  • Java Date and Time
  • Local Date and Time
  • java.util.Date and java.time.Instant
  • Formatting

Collections and Generics

  • What are Collections?
  • Arrays vs. Collections
  • Main Collections Interfaces
  • java.util.Collection
  • Main Collection Methods
  • Sets
  • java.util.List
  • java.util.Queue
  • Iteration on a Collection
  • Iterator vs. For-Each Loop
  • Maps
  • java.util.Map
  • Other Maps
  • Collections Implementations
  • Abstract Implementations
  • Choosing a Collection Type
  • Generics
  • Generics and Collections
  • Generic Collection Example
  • Collections and Primitive Types
  • Generic Diamond Operator
  • Collection Factory Methods

Introduction to Lambda Expressions

  • Functional Interface
  • Anonymous Inner Class (AIC)
  • Downside of AIC
  • Lambda Expressions
  • Lambda Expression Syntax
  • Method Reference
  • Benefits of Lambda Expressions – An Example
  • Initial Version
  • Refactor Criteria Into Method
  • Predicate Interface
  • Using a Predicate
  • Implement as Separate Class
  • Implement as AIC
  • Use Lambda Expressions
  • Reuse Lambda Expressions

Input and Output

  • Overview of Java Input/Output
  • The File Class
  • File Example
  • The java.nio.file.Path Interface
  • Serialization
  • Serializing Object State
  • Avoiding Serialization Problems
  • serialVersionUID
  • Options for File Input/Output
  • Streams
  • Input Stream
  • Output Stream
  • "Chained" Streams
  • RandomAccessFile
  • try-with-resources Statement
  • Using Streams - Write Example
  • Using Streams - Read Example
  • Reader and Writer
  • NIO Channels and Buffers

Other Java Concepts

  • Annotations
  • Enumerated Types
  • Enumerated Types – Example
  • Assertions
  • When to use Assertions
  • Assertions Examples
  • Enabling Assertions
  • JVM Storage Areas
  • Java Heap Space
  • Heap Size Limits
  • Garbage Collection Basics
  • Allocation Failure (AF)
  • OutOfMemoryError
  • Memory Leak
  • JShell
  • Distributing Java Code with JARs

Lab Exercises

  • Lab 1. The HelloWorld Class
  • Lab 2. Refining The HelloWorld Class
  • Lab 3. The Arithmetic Class
  • Lab 4. Project - Prompt and Store StockAccount Information (Optional)
  • Lab 5. Creating A Simple Object
  • Lab 6. Project - Create a StockAccount Class (Optional)
  • Lab 7. Getters and Setters
  • Lab 8. Project - Improve Encapsulation (Optional)
  • Lab 9. Using Constructors
  • Lab 10. Project - Add Constructors (Optional)
  • Lab 11. Project – Create a Stock Class (Optional)
  • Lab 12. Project – Buy Stock (Optional)
  • Lab 13. Project – Sell Stock (Optional)
  • Lab 14. Looping
  • Lab 15. Project - Loop Until Quit (Optional)
  • Lab 16. Subclasses
  • Lab 17. Project - Dividend Stocks (Optional)
  • Lab 18. Arrays
  • Lab 19. Method Overriding
  • Lab 20. Project - Improved Stock Output (Optional)
  • Lab 21. Exception Handling
  • Lab 22. Project - Better Error Handling (Optional)
  • Lab 23. Interfaces
  • Lab 24. Collections
  • Lab 25. Project – Multiple Stocks (Optional)
  • Lab 26. Introduction to Lambda Expressions
  • Lab 27. Writing To A File
  • Lab 28. Project - Saving to a File (Optional)

No Upcoming Public Classes

There are currently no public events available for this course. However, you can submit a request for a new date and we will try our best to get you into a Introduction to Java 11 Using Eclipse class.

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

It is beneficial but not required for students to be familiar with object-oriented principles and the concept of object-oriented programming.

No Upcoming Public Classes

There are currently no public events available for this course. However, you can submit a request for a new date and we will try our best to get you into a Introduction to Java 11 Using Eclipse class.

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