Team training in Expert Core Java


We have new course material for the second half of this year. Core Java Training

We provide tailored team training for advanced and expert Java Developers at a low cost per head.  Select from the topics below.  We can provide training on site for your organization, world wide.

For more details, see the Core Java Training web page.

Expert Java Development (2-3 days)

  • Working with primitives to save memory and reduce garbage.
  • How to use double and long safely instead of BigDecimal.
  • How to use collections like Map, Set, ConcurrentMap, NavigableMap, List, Queue, BlockingQueue and Deque effectively.
  • How to use thread pools and fork join.
  • Asynchronous processing and exception handling.
  • How to use Lambdas in Java 8 for lazy evaluation and parallel coding.
  • How to use Plain IO and NIO, files, TCP and UDP.
  • volatile, read/write memory barriers and when you need them.
  • default methods in Java 8.
  • Using enum for singletons and utility classes.
  • Java 8 JSR-310 Date Time library.
  • Using off heap memory with ByteBuffer.
  • Command line options for monitoring the JIT

Java Memory Management and Optimisation (1 day)

  • Measuring memory usage
  • Finding memory leaks.
  • Optimising GC pauses
  • Speeding up code between GC pauses
  • GC free coding
  • Low GC replacements for common development patterns
  • Command line options for monitoring and tuning memory use.

Java Multi-thread and Concurrency (1 day)

  • When to multi-thread and when not to.
  • Sharing immutable data between threads
  • Using multiple data within a thread.
  • Reactor, Streaming processes and Event Driving processing.
  • Performance tuning multi-threaded applications
  • Busy waiting and CPU binding for reducing latency.

Java Performance profiling and Tuning (1 day)

  • How to measure latency in a meaningful way.
  • How to measure your application for performance end to end.
  • Micro-benchmarks; pit-falls and getting meaningful results.
  • How to model your performance profile.
  • How to find the biggest opportunities to improve to target your changes (and keep them to a minimum)
  • Examples of performance changes and alternatives

How the JVM really works and low level coding (1 day)

  • What is byte code and how is it used.
  • How can you write byte code.
  • How is lambdas implemented in Java 8.
  • How to use off heap memory.
  • When to use on heap vs off heap memory.
  • How CPUs really work and how to take advantage of this in Java.

Event driven processing (1-2 days)

  • Asynchronous processing and persistence
  • Actor patterns and lower latency reactive patterns
  • Event driven parsers.
  • Event routing and filtering.
  • Aggregating engines.
  • Simple complex event processing engines.
  • Performance monitoring and measures for event driven systems.

Expert low latency event driven systems (1-2 days)

  • How to build deterministic systems with repeatable outcomes and performance.
  • How to get detailed information about production systems without impacting performance.
  • How to use distributed systems for high throughput.
  • How to scale you system vertically as well as horizontally.
  • How to get low latency in a distributed/redundant system.

Practical use of Chronicle (1-2 days)

  • Introduction to using Chronicle Queue and Map.
  • How to write millions of messages per second without garbage.
  • How to update millions of key-values per second without garbage.
  • How to achieve micro-second latency and persistence.
  • How to distribute across many machines efficiently.
  • How to distribute high volumes across a WAN in a controlled manner.
  • Chronicle internals, lessons learnt, techniques used.


  1. This comment has been removed by a blog administrator.


Post a Comment

Popular posts from this blog

Java is Very Fast, If You Don’t Create Many Objects

System wide unique nanosecond timestamps

Comparing Approaches to Durability in Low Latency Messaging Queues