Course duration
- 5 days
Course Benefits
- Understand Java’s importance, uses, strengths and weaknesses
- Understand the release cycle and Long Term Support (LTS) releases
- Understand Java language basics
- Write, compile, and run Java programs
- Use the Java shell (JShell - Java 9+) for interactive programming
- Understand the Object Model and Object Oriented Programming
- Understand and use classes, inheritance, polymorphism
- Create well designed classes and use them in your Java programs
- Use composition and delegation to create objects from other objects
- Understand & use packages to organize code
- Understand and use Java 9 modules
- Understand interfaces, their importance, and their uses
- Use interfaces to implement abstraction
- Learn good Java coding style
- Create well structured Java programs
- Compile and execute programs with the JDK development tools and with an Integrated Development Environment (IDE) of your choice
- Use the core Java libraries (java.lang, java.util)
- Understand & use exceptions for error handling
- Understand the basics of using JDBC and JPA, and use them to access databases from Java
- Use the Java Collections Framework including new API introduced in Java 9-11
- Use other new features such as type inference
- Be aware of, and use the new features of Java 9-11, as well as important advanced features of earlier Java versions
Course Outline
- A First Look
- A Simple Java Class
- Java's "Hello World" Program
- The Java Shell (REPL)
- LAB: Hello World: A Simple Application
- Java Basics
- Language and Platform Features
- The Java Release Cycle
- Program Life Cycle
- The Java SE Development Kit (JDK)
- LAB: Working with the Development Environment
- Class and Object Basics
- The Object Model and Object-Oriented Programming
- Classes, References, and Instantiation
- Adding Data to a Class Definition
- Adding Methods (Behavior)
- LABS
- Exploring Types and Object Instances
- Writing and Using a Class Definition with Fields and Methods
- More on Classes and Objects
- Accessing data, the "this" variable
- Encapsulation and Access Control, public and private Access
- Constructors and Initialization
- static Members of a Class
- Type Inference (Java 10+)
- Scopes, Blocks, References to Objects
- Type-safe Enums
- LABS
- Encapsulation / Access Protection
- Writing and Using Constructors
- (Optional) Static Members
- Using enums
- Using the Debugger
- Flow of Control
- Branching: if, if-else, switch
- Iteration: while, do-while, for, break, continue
- LAB: Flow of Control / Data Validation
- Strings, Arrays, and Dates/Times
- String, StringBuffer, StringBuilder
- Arrays, Primitive Arrays, Arrays of Reference Types
- varargs
- LocalDate/LocalTime (Java 8+)
- LAB: Using Strings and Arrays
- Packages and Modules
- Package Overview - Using Packages to Organize Code
- import statements
- Creating Packages, package Statement, Required Directory Structure
- Java 9 Module Overview
- Defining Modules, Requires, and Exports
- Module Path and Classpath - Differences and Coexistence
- LAB: Using Packages and Modules
- Composition and Inheritance
- Using Composition to Deal With Complexity
- Composition/HAS-A, Delegation
- Using Inheritance and Polymorphism to share commonality
- IS-A, extends, Inheriting Features, Overriding Methods, Using Polymorphism
- Class Object
- Abstract Classes
- LAB: Using Inheritance to Specialize Classes
- Interfaces
- Using Interfaces to Define Types
- Interfaces and Abstract Classes
- Default Methods and static Methods (Java 8)
- LABS:
- Using Interfaces to Remove Implementation Dependencies
- Exceptions
- Exceptions and the Exception Hierarchy
- try and catch
- Handling Exceptions
- Program Flow with Exceptions
- finally
- LAB: Throwing and Handling Exceptions
- Java Collections and Generics
- The Collections Framework and its API
- Collections and Java Generics
- Collection, Set, List, Map, Iterator
- Autoboxing
- Collections of Object (non-generic)
- Using ArrayList, HashSet, and HashMap
- for-each Loop
- Processing Items With an Iterator
- More About Generics
- LABS
- Using Lists and Generics
- Using Sets
- Database Access with JDBC and JPA
- JDBC Overview
- JDBC Architecture and API
- Using DriverManager, Connection, Statement and ResultSet
- JPA Overview
- JPA Architecture and Programming View
- Entity Classes and Annotations
- Mapping an Entity Class
- EntityManagerFactory and EntityManager
- Working with JPA (Find by primayry key and inserts)
- LABS
- Mapping an Entity Class
- Working with JPA
- Additional Java Features
- Annotations
- Lambda Expressions and Method References (Java 8+)
- Additional Features
Class Materials
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Experience in the following is required for this Java class:
- Existing programming experience
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.