Advanced Java Programming
Contact us for Onsite Price
Layout
This training course combines lectures with practical exercises that help the delegates to put what they have learned on the training course into practice. The exercises specifically build on what has been recently taught and are built up as the training course progresses.
Training Course Objectives
- Understand and work with generic types and collections
- Understand the wild card and bounded features within generics
- Read and write inner classes and understand where they should be applied
- Understand multithreading in Java
- Understand how concurrency works in the Java platform
- Use the various Java threading libraries 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
Who it is for
This training course is for experienced Java developers who need to be able to develop advanced applications using the Java programming language.
Training Course Prerequisites
- The training course assumes that delegates are already Java programmers.
- It assumes knowledge of the object-oriented paradigm as object oriented theory is not covered in the content of the training course.
Chapters
Chapter 1 Introduction to Generics
- Java collections Framework
- Lists, Sets and Maps
- Traversing Collections
- Iterable
- Utility methods for collections
Chapter 2 Advanced Generics
- Defining Generic Types
- Comparison and Ordering
- Writing Generic Methods
- Type wildcards
- Bounded type wildcards
- Bounded type parameters
- Multiple bounds
Chapter 3 Inner Classes
- What are inner classes
- Nested classes
- Member classes
- Local classes
- Anonymous classes
Chapter 4 Enumerated Types
- The int Enum pattern
- The Java enum
- Iteration and switching
- Adding data and methods
- Constant specific class bodies
Chapter 5 Introducing Java Threads
- Threads and Runnables
- Creating Threads
- Thread termination and cancellation
- Thread Scheduling
- Thread Groups
- Threads and Exceptions
Chapter 6 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
Chapter 7 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
Chapter 8 The Reflection API
- Inside Java classes
- Class file structure
- Reflection
- Accessing Fields, Methods and Constructors
- Reflective object creation
- Reflectie method invocation
- Security
Chapter 9 Annotations
- Source code metadata
- Java Annotations
- Built in annotations
- Defining annotation types
- Annotating an annotation type
- Annotation processing
Chapter 10 Working with Sockets
- Creating a ServerSocket
- Creating a Client
- Working with streams
- Strategies for Creating multithreaded servers