Course duration
- 5 days
Course Benefits
- Chiefly, learn to program effectively in the Java language.
- Understand Java as a purely object-oriented language, and implement software as systems of classes.
- Implement and use inheritance and polymorphism, including interfaces and abstract classes.
- Design appropriate exception handling into Java methods, and use the logging API appropriately.
- Use Java as a functional language, making appropriate choices of tools including inner classes, functional interfaces, method references, and lambda expressions.
- Use the Stream API for efficient processing of data sets.
Public expert-led online training from the convenience of your home, office or anywhere with an internet connection. Guaranteed to run .
Private classes are delivered for groups at your offices or a location of your choice.
Course Outline
- Review of Java Fundamentals
- The Java Architecture
- Forms for Java Software
- Three Platforms
- The Java Language
- Numeric Types
- Characters and Booleans
- Enumerations
- Object References
- Strings and Arrays
- Conditional Constructs
- Looping Constructs
- Varargs
- Object-Oriented Software
- Complex Systems
- Abstraction
- Classes and Objects
- Responsibilities and Collaborators
- UML
- Relationships
- Visibility
- Classes and Objects
- Java Classes
- Constructors and Garbage Collection
- Naming Conventions and JavaBeans
- Relationships Between Classes
- Using this
- Visibility
- Packages and Imports
- Overloading Methods and Constructors
- JARs
- Inheritance and Polymorphism in Java
- UML Specialization
- Extending Classes
- Using Derived Classes
- Type Identification
- Compile-Time and Run-Time Type
- Polymorphism
- Overriding Methods
- The @Override Annotation
- Superclass Reference
- Using Classes Effectively
- Class Loading
- Static Members
- Statics and Non-Statics
- Static Initializers
- Static Imports
- Prohibiting Inheritance
- Costs of Object Creation
- Strings and StringBuffers
- Controlling Object Creation
- Understanding Enumerated Types
- Stateful and Behavioral Enumerations
- Interfaces and Abstract Classes
- Separating Interface and Implementation
- UML Interfaces and Realization
- Defining Interfaces
- Implementing and Extending Interfaces
- Abstract Classes
- Collections
- Dynamic Collections vs. Arrays
- UML Parameterized Type
- Generics
- Using Generics
- The Collections API
- The Collection<E> and List<E> Interfaces
- The ArrayList<E> and LinkedList<E> Classes
- Looping Over Collections: Iterable<E>
- Collecting Primitive Values: Auto-Boxing
- Using Wildcards with Generic Types
- Iterators and the Iterator<E> Interface
- Maps and the Map<K,V> Interface
- Sorted Collections
- The SortedSet<E> and SortedMap<K,V> Interfaces
- The Collections Class Utility
- Algorithms
- Conversion Utilities
- Exception Handling and Logging
- Reporting and Trapping Errors
- Exception Handling
- Throwing Exceptions
- Declaring Exceptions per Method
- Catching Exceptions
- The finally Block
- Catch-and-Release
- Chaining Exceptions
- try-with-resources
- Logging
- The Java SE Logging API
- Loggers
- Logging Levels
- Handlers
- Configuration
- Best Practices
- Nested Classes
- Nested Classes
- Static Classes
- Inner Classes
- Relationship with the Outer Object
- Local Classes
- Enclosing Scope
- Anonymous Classes
- Functional Programming
- Passing Behavior as a Parameter
- Inner Classes
- Functional Interfaces
- Built-In Functional Interfaces
- Lambda Expressions
- Scope and Visibility
- Deferred Execution
- Method References
- Creational Methods
- Designing for Functional Programming
- Default Methods
- Streams
- The Stream Processing Model
- Streams
- Relationship to Collections
- Advantages and Disadvantages
- Iterating, Filtering, and Mapping
- Primitive-Type Streams
- Aggregate Functions and Statistics
- Sorting
- Generating, Limiting, and Reducing
- Finding and Matching
- Grouping
- Flattening and Traversing
- Sequential vs. Parallel Processing
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:
- Students must be able to write, compile, test, and debug simple Java programs, using structured programming techniques, strong data types, and flow-control constructs such as conditionals and loops.
Courses that can help you meet these prerequisites:
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.