Advanced Java Programming
Outline

Advanced Java Programming

This advanced training course is for experienced Java developers who need to go into more depth into the core features of the language that are not typically covered on basic Java programming courses. The course details subjects that get cursory coverage in most books and courses, like generics, multithreading, socket programming, synchronization, and annotation development and looks at how the Java platform can be used to develop applications using these libraries and features.

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

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.

Contents

Introduction to Generics

  • Java collections Framework
  • Lists, Sets and Maps
  • Traversing Collections
  • Iterable and the for loop
  • Utility methods for collections

Advanced Generics

  • Defining Generic Types
  • Comparison and Ordering
  • Writing Generic Methods
  • Type wildcards
  • Bounded type wildcards
  • Bounded type parameters
  • Multiple bounds

Inner Classes

  • What are inner classes
  • Nested classes
  • Member classes
  • Local classes
  • Anonymous classes

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

Do You Have a Question?

);

Accreditations:

Our team are AWS Professional Certified Solutions  ArchitectsOur team are AWS Devops Specialty CertifiedAltova Training PartnerAltova Consulting PartnerOur team members are Professional Scrum master certified
Website Design by tinyBox Creative