Software SKILLNET

Java Advanced


Java Advanced
Start Date20th November 2017
Course CodeSS17-97
VenueTBC
Non-member
Full Fee
€0.00
Duration4 Days
LocationDublin
Provider
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

NIO2

  • 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

 

Reflection

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

 

Sockets

  • 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

  • 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