JAVAAP – Advanced Java Programming

Enquire/Book this course

  • This field is for validation purposes and should be left unchanged.
Print this page
  • Code: JAVAAP
  • Duration: Days 3
  • Price per delegate: £1,200 +VAT

Trained over 60000 delegates

Course delivered by industry expert instructors

Highly competitive pricing


Course Description
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 6 platform can be used to develop applications using these libraries and features.
Target Student:
This training course is for experienced Java developers who need to be able to develop advanced applications using the Java programming language.
  • 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.
Delivery Method: Instructor led, group-paced, classroom-delivery learning model with structured hands-on activities.
Performance-Based Objectives
At the end of this training course, students should be able to:
  • 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
  • Refactor Java 1.4 code to use the Enum types in Java 5
  • Understand multithreading in Java
  • Understand how concurrency works in the Java platform
  • Use the various Java 5 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
Course Content
1. Introduction to Generics
  • Java collections Framework
  • Lists, Sets and Maps
  • Traversing Collections
  • Iterable and the for loop
  • Utility methods for collections
2. Advanced Generics
  • Defining Generic Types
  • Comparison and Ordering
  • Writing Generic Methods
  • Type wildcards
  • Bounded type wildcards
  • Bounded type parameters
  • Multiple bounds
3. Inner Classes
  • What are inner classes
  • Nested classes
  • Member classes
  • Local classes
  • Anonymous classes
4. Enumerated Types
  • The int Enum pattern
  • The Java 5 enum
  • Iteration and switching
  • Adding data and methods
  • Constant specific class bodies
5. Introducing Java Threads
  • Threads and Runnables
  • Creating Threads
  • Thread termination and cancellation
  • Thread Scheduling
  • Thread Groups
  • Threads and Exceptions
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
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
8. The Reflection API
  • Inside Java classes
  • Class file structure
  • Reflection
  • Accessing Fields, Methods and Constructors
  • Reflective object creation
  • Reflectie method invocation
  • Security
9. Annotations
  • Source code metadata
  • Java 5 Annotations
  • Built in annotations
  • Defining annotation types
  • Annotating an annotation type
  • Annotation processing
10. Working with Sockets
  • Creating a ServerSocket
  • Creating a Client
  • Working with streams
  • Strategies for Creating multithreaded servers