Duration
5 Days
30 CPD hours
This course is intended for
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.
Overview
This 'skills-centric' course is about 50% hands-on lab and 50% lecture, designed
to train attendees in core OO coding and Java development skills, coupling the
most current, effective techniques with the soundest industry practices. Our
engaging instructors and mentors are highly experienced practitioners who bring
years of current 'on-the-job' experience into every classroom.
Working in a hands-on learning environment, guided by our expert team, attendees
will learn to:
Understand what OO programming is and what the advantages of OO are in today's
world
Work with objects, classes, and OO implementations
Understand the basic concepts of OO such as encapsulation, inheritance,
polymorphism, and abstraction
Understand not only the fundamentals of the Java language, but also its
importance, uses, strengths and weaknesses
Understand the basics of the Java language and how?it relates to OO programming
and the Object Model
Learn to use Java exception handling
Understand and use classes, inheritance and polymorphism
Understand and use collections, generics, autoboxing, and enumerations
Become familiar with the concept of functional programming using Lambda
Expressions
Process large amounts of data using the Stream API introduced in Java 8
Discover the new Date/Time API
Use the JDBC API for database access
Work with annotations
Take advantage of the Java tooling that is available with the programming
environment being used in the class
Java 8 Features: Lambda Expressions, Method and Constructor references, The
Streams API, Collectors, The Optional class
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
THE JAVA PLATFORM
* The Java Platform
* Lifecycle of a Java Program
* Responsibilities of JVM
* Documentation and Code Reuse
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
THE INTELLIJ PARADIGM
* Introduce the IntelliJ IDE
* The Basics of the IntelliJ interface
* IntelliJ Projects and Modules
* Creating and running Java applications
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
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
OBJECT-ORIENTED PROGRAMMING
* Real-World Objects
* Classes and Objects
* Object Behavior
* Methods and Messages
INHERITANCE, ABSTRACTION, AND POLYMORPHISM
* Encapsulation
* Inheritance
* Method Overriding
* Polymorphism
ESSENTIAL JAVA PROGRAMMING
* Essential Java Programming
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
USING STRINGS AND TEXT BLOCKS
* 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
* Compact Strings
* Text Blocks
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
* Pattern matching for instanceof
* Overriding subclass methods
* Safely casting references to a more refined type
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
* Local Variable type inference
USING ARRAYS
* Declaring an array reference
* Allocating an array
* Initializing the entries in an array
* Writing methods with a variable number of arguments
RECORDS
* Data Objects in Java
* Introduce records as carrier of immutable data
* Defining records
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
* Visibility in the Java Modular System Correctly executing a Java application
class
* The Java modular system
* Defining Modules
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
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
* Static, default and private methods in interfaces
SEALED CLASSES
* Introduce Sealed classes
* The sealed and permits modifiers
* Sealed Interfaces Exception Handling
INTRODUCTION TO EXCEPTION HANDLING
* Introduce the Exception architecture
* Defining a try/catch blocks Checked vs Unchecked exceptions
EXCEPTIONS
* Defining your own application exceptions
* Automatic closure of resources
* Suppressed exceptions
* Handling multiple exceptions in one catch
* Helpful Nullpointers
* Enhanced try-with-resources Java Developer's Toolbox
DEVELOPING APPLICATIONS
* Introduce the wrapper classes
* Explain Autoboxing and Unboxing
* Converting String representations of primitive numbers into their primitive
types
* Defining Enumerations
* Using static imports
* Deprecating methods Advanced Java Programming
INTRODUCTION TO GENERICS
* Generics and Subtyping
* Bounded Wildcards
* Generic Methods
* Legacy Calls To Generics
* When Generics Should Be Used
LAMBDA EXPRESSIONS AND FUNCTIONAL INTERFACE
* Understanding the concept of functional programming
* Writing lambda expressions
* Understanding functional interfaces
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
USING COLLECTIONS
* Collection Sorting
* Comparators
* Using the Right Collection
* Lambda expressions in Collections
* Bonus Topics: Time Permitting
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 takeWhile and dropWhile
intermediate operations
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