Server Side Core Java Training Topics

The length of each course can be tailor to your requirements.

Expert Java Development

2-3 days

Java Memory Management and Optimisation

1 day

Java Multi-thread and Concurrency

1 day

How the JVM really works & low level coding

1 day

Event driven processing

1-2 days

Expert low latency event driven systems

1-2 days

Practical use of Chronicle

1-2 days

What we offer

Training involves delivering preprepared content to developers. Unlike consulting, where you want to avoid assuming what will help the client, with training you decide in advance what to cover and assume it will be useful.

For us, the key thing to get from our training is to think differently about Java and software development in general. We encourage solving problems head on, with a simple, elegant solution. Adding work arounds, or more layers of abstraction should be avoided as these usualy add complexity.

For me and the participants, training is the most fun. We get to discuss many techincal aspects you don’t normally get to play with.

Typically, training is 4 – 5 days long.

 

Chronicle Software offer a range of training options for Server side Core Java Developers.  We deliver courses on site to your team anywhere in the world.

Our courses are designed to start where most of the advanced courses finish.  They assume you know Java well and have 5 – 10 years hands on experience in core Java development.  Some teams may prefer to have exercises demonstrated rather than attempt the exercises themselves.

One Week Course

To make the training more cost effective, we typically provide a weeks onsite training, different members of your organisation can attend on different days, ideally we try to aim to have 6 to 10 people per session. A weeks training usually consists of :

Day One:  Green field development, an introduction to best practices.

Day Two: Selected topics focused on how to improve existing systems

Day Three: Selected topics focused on how to improve existing systems

Day Four: Selected topics focused on how to improve existing systems

Day Five: Refresher of topics covered, additional exercises and consulting on specific problems facing the team.

Course Content

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.

 

Tailored To You…

We adjust the content of our courses to suit your needs. We can have a mix of training and consulting.

Training paid in advance will receive a 20% discount.

From

$420

€310

£240

per person per day
+ VAT ( Value Added Tax )

for more information

Contact Us