Java Advanced

Java Advanced
Start Date20th November 2017
Course CodeSS17-97
Full Fee
Duration4 Days
Network Member Subsidised Fee€0.00
Download Course PDF  
  Course expired

Programme Overview
This course is aimed at existing Java developers who wish to obtain a deeper understanding of advanced Java programming techniques, APIs, and development practices. The course also explores important additions in Java 8 and includes a preview of Java 9, as well as showing how to implement distributed systems using REST and Web Sockets.
Course Objectives and Learning Outcomes
To obtain a deeper understanding of advanced Java programming techniques, APIs, and development practices.
Who should attend
Intermediate and advanced Java developers who have a specific performance goal/business objective to meet.
Course Content


  • Overview of NIO2
  • Basic operations
  • File visitors
  • Directory watching
  • File attributes


Advanced JDBC Techniques

  • DataSources
  • Metadata
  • JDBC escape syntax
  • Transaction management
  • Additional techniques


Localization and Resource Bundles

  • Locales
  • Resource bundles
  • Locale-specific formatting and parsing



  • Dynamic retrieval of information using reflection
  • Creating instances of extensibility objects
  • Class fields, methods and constructors



  • Introduction to sockets
  • Implementing a socket server
  • Implementing a socket client


Java Native Interface (JNI)

  • Getting started with JNI
  • Defining native methods in Java
  • Implementing native code in C/C++


Multithreading Techniques

  • Java synchronization language features
  • Designing thread-safe classes
  • Recommendations for synchronizing resource access


Additional Multithreading Issues

  • Using concurrent collections
  • Using synchronizers and locks
  • Thread pooling techniques
  • Using the executor framework
  • Using pooling effectively


Tuning Garbage Collection

  • Essential concepts
  • Understanding object lifetimes
  • Generational collectors
  • Heap organization
  • Garbage collection options
  • Garbage collection monitoring and tuning



  • Security managers
  • Policy files
  • Sandboxing
  • Cryptographic random numbers

Java 8 Features

  • Lambda expressions
  • Method references
  • Constructor references
  • Interface changes in Java 8


Additional Java 8 Features

  • Streams
  • Collections and concurrency enhancements
  • New date/time API
  • IO/NIO additions


TDD and Unit Testing

  • Principles of unit testing
  • Using JUnit and Hamcrest effectively
  • Dependency injection and mocking


Design Patterns

  • Taxonomy of design patterns
  • Creational patterns
  • Behavioural patterns
  • Structural patterns


REST-Based Web Services

  • Overview of RESTful services
  • Creating a RESTful service
  • Consuming a RESTful service
  • Handling JSON data
  • Browser-based developer tools
  • Secure communications


Web Sockets

  • Overview of Web Sockets
  • Defining a Web Sockets server
  • Defining a Web Sockets web page client
  • Defining a Web Sockets Java client
  • Overview of SSE


Looking Ahead to Java 9

  • Summary of features expected in Java 9
  • Modularizing code
  • New Java compiler options

About the Trainer

Michael Johnson - Mike has more than 20 years of Experience in IT technical training and consultancy, Systems analysis and design Software engineering methodologies, Project management, Training and coaching in personal effectiveness. Mike has delivered Agile Migration Programs for Ericsson in Ireland, Hungary, Spain, for Fidelity Investments, JP Morgan and other companies. Mike is an expert in IT Consultancy and Training Programs for Ericsson, Citi bank, Hewlett Packard. Mike has delivered different training programs in Singapore, HK, Mumbai, Shanghai, New York, Boston, Raleigh, London and Dublin.

Key Competencies

  • Adopting and deploying Agile management methods – Scrum, XP, DAD, Lean and Kanban
  • Adopting and deploying Agile technical practices – Test Driven Development, Pair Programming and Continuous Integration.
  • Coaching and mentoring of senior technical staff
  • Technical training and workshops
  • JEE Development
  • Python Programming
  • XML Programming