Highlights
- Learn and work with generic types and collections
- Understand the wild card and bounded features within generics
- Understanding the use of Lambda functions and the Streams API
- Understand multithreading in Java
- Learn how concurrency works in the Java platform
- Use the various Java threading libraries
- How to implement robust multithreaded applications
- Understand the structure of a class file
- Use the reflection API to interact with a class file
- Create and use Java annotations
- Create single threaded and multithreaded servers using sockets
- Create server client applications using sockets
Course Details
Introduction to Generics
· Java collections Framework
· Lists, Sets and Maps
· Traversing Collections
· Iterable
· Utility methods for collections
Advanced Generics
· Defining Generic Types
· Writing Generic Methods
· Type wildcards
· Bounded type wildcards
· Bounded type parameters
· Multiple bounds
· Covariance and Contravariance
Lambda Functions and the Streams API
· Creating Lambda functions
· Functional Interfaces
· What is are Streams
· Introduction to the Streams API
· Processing and manipulating data with Streams
Enumerated Types
· The int Enum pattern
· The Java enum
· Iteration and switching
· Adding data and methods
· Constant specific class bodies
Introducing Java Threads
· Threads and Runnables
· Creating Threads
· Thread termination and cancellation
· Thread Scheduling
· Thread Groups
· Threads and Exceptions
Synchronization
· Why worry about synchronization?
· Basic monitor functionality
· Memory model and data visibility
· Lock objects
· Atomic data types
· Synchronizing execution
· Producer consumer problem and solutions
· Condition objects
· Semaphores
· Latches
· Cyclic barriers
High Level Concurrency Support
· The java.util.concurrent library
· Concurrent collections
· Queues and Synchronization
· Task Management
· Executor Framework and Thread Pools
· Tasks, Callables, and Future Objects
· The Completion Service
The Reflection API
· Inside Java classes
· Class file structure
· Reflection
· Accessing Fields, Methods and Constructors
· Reflective object creation
· Reflective method invocation
· Security
Annotations
· Source code metadata
· Java Annotations
· Built in annotations
· Defining annotation types
· Annotating an annotation type
· Annotation processing
Working with Sockets
· Creating a ServerSocket
· Creating a Client
· Working with streams
· Strategies for Creating multithreaded servers
Who should attend
Feedback
4.8 out of 5 average
"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"
Brian Leek, Data Analyst, May 2022
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022