3 arrows

Summer-Ready Savings: Up To $500 Off Training 


Extreme Java - Advanced Topics

  • Tuition USD $1,995
  • Reviews star_rate star_rate star_rate star_rate star_half 4064 Ratings
  • Course Code JAV-407
  • Duration 2 days
  • Available Formats Classroom

The "Extreme Java - Advanced Topics" Course is authored by Dr Heinz Kabutz, the publisher of The Java Specialists' Newsletter. It includes (under license) training material produced by JavaPerformanceTuning.com. It is based on our bestselling Java Specialist Master Course. If you answer "yes!" to any of these questions, then this course is for you:

  • Would you like to learn some advanced techniques for writing Java code?
  • Would you like to understand Java NIO?
  • Would you like to understand the intricacies of Java memory, including tips on how to diagnose problems?
  • Have you ever wondered what possibilities exist in the reflection API?
  • Or wondered what data structures would be best suited to your application?
  • Or looked for better ways of managing exceptions?

Skills Gained

During this 2-day course, we will study over 300 slides of advanced Java topics. Each major section is followed by practical hands-on exercises to apply what you have learned. Even the most experienced Java programmer will be stimulated and challenged. This course is ideally suited to the professional Java programmer with at least 2 years experience, who would like to learn how to truly master the Java Programming Language.


To get the most from the course, we recommend that you study some of the relevant articles on this newsletter. We have put together a free PDF containing all those newsletters that have had an influence in shaping this course. Please click here to download your free copy.

  • Previous Training: Preferably a formal qualification in computer science or related field.
  • Required Experience: At least two years of professional Java programming. Are you unsure whether you are ready for this course? Try our free Java Specialist Master Course Prep.

Course Details


  • Welcome!
  • Course organization
  • Course overview

Java IO

  • 1. Object Streams and Serialization
  • Object Serialization
  • Simple Object Serialization
  • Serializable Fields
  • Resetting Streams
  • readObject() / writeObject()
  • Controlling Serialization
  • Serial Object Versioning
  • Overriding Versioning
  • Serialization Performance
  • Serialization Pitfalls
  • 2. Java New IO Package
  • Motivation for Using
  • Working with Buffers
  • Allocating Buffers
  • Buffers Advantages
  • Channels
  • Memory Mapped Files
  • Non-Blocking Operations

Java Memory

  • 1. Garbage Collection
  • Overview
  • Generational Spaces
  • GC Tasks
  • Heap Fragmentation
  • Escape Analysis
  • GC Pros and Cons
  • Measuring GC Activity
  • Performance
  • Object Size
  • 2. Tuning JVM
  • Performance Tuning
  • Memory Leaks
  • Loitering Objects
  • Object Churn
  • Heap Sizing
  • 3. Finalizers
  • How it works
  • Performance Implications
  • Other references

Reflection API

  • 1. Overview
  • Introduction
  • Usefulness of Reflection
  • Dangers of Reflection
  • Examining Classes
  • Reflection Package
  • Retrieving Class Objects
  • Working with Class Objects
  • Accessing fields
  • Accessing methods
  • 2. Manipulating Objects
  • Creating new objects
  • Getting and Setting Fields
  • Final fields
  • Invoking Methods
  • Working with Arrays

Data Structures

  • 1. Time Complexity
  • Algorithm Complexity
  • Examples from Java
  • 2. Iteration
  • Iterators
  • "for-each" iteration
  • Iterable interface
  • ConcurrentModification
  • CopyOnWrite Collections
  • 3. Hashing
  • How Hashing Works
  • JDK 1.4+ rehashing
  • Compound Keys
  • Linked Maps
  • 4. Sorting
  • Defining Natural Order
  • Comparators
  • Trees
  • 5. Queues
  • Queues
  • PriorityQueue
  • BlockingQueue
  • Deques


  • 1. Error Handling
  • Class Hierarchy
  • Exception Class
  • Error Class
  • 2. Best Practices
  • Checked vs. Unchecked
  • Avoid Custom Exceptions
  • Writing Good Exceptions
  • Wrap Low Level Exceptions
  • Avoid Catching "Programmer Bug" Exceptions
  • Performance of Exceptions
  • Chain Exceptions
  • Avoid Swallowing Exceptions
  • Cleanup After An Exception
  • Java 7 try-with-resource
  • Losing an Exception in finally
  • Never Abuse Exceptions for Flow Control
  • Throw Exceptions Early
  • Catch Exceptions Late
  • Good Throws Clauses
  • Document Exceptions
  • Unit Test Exceptions
  • 3. Assertions
  • Mechanism
  • "assert" Statement
  • When to Use
  • When Not to Use
  • JVM switches

Dates and Time Zones

  • 1. Computer Time
  • Time Synchronization
  • Human Time Interpretation
  • 2. Time in Java
  • Introduction
  • java.util.Date
  • JSR310 vs Joda Time
  • java.util.TimeZone
  • java.util.DateFormat


  • 1. Overview
  • Why log?
  • Principal Requirements
  • Main Logging APIs
  • 2. Best Practices
  • Defining Logging Scheme
  • Logging Levels
  • Log Messages Format
  • Centralized Logging
  • Code Guards
  • Exceptions
  • Reviewing Logging
  • 3. Impact on Performance
  • Unecessary Strings
  • Writing to Disk
  • Asynchronous Logging


  • Where to next?
  • Never stop learning!

When does class start/end?

Classes begin promptly at 9:00 am, and typically end at 5:00 pm.

Does the course schedule include a Lunchbreak?

Lunch is normally an hour long and begins at noon. Coffee, tea, hot chocolate and juice are available all day in the kitchen. Fruit, muffins and bagels are served each morning. There are numerous restaurants near each of our centers, and some popular ones are indicated on the Area Map in the Student Welcome Handbooks - these can be picked up in the lobby or requested from one of our ExitCertified staff.

How can someone reach me during class?

If someone should need to contact you while you are in class, please have them call the center telephone number and leave a message with the receptionist.

What languages are used to deliver training?

Most courses are conducted in English, unless otherwise specified. Some courses will have the word "FRENCH" marked in red beside the scheduled date(s) indicating the language of instruction.

What does GTR stand for?

GTR stands for Guaranteed to Run; if you see a course with this status, it means this event is confirmed to run. View our GTR page to see our full list of Guaranteed to Run courses.

Does ExitCertified deliver group training?

Yes, we provide training for groups, individuals and private on sites. View our group training page for more information.

Does ExitCertified deliver group training?

Yes, we provide training for groups, individuals, and private on sites. View our group training page for more information.

Great and very intuitive. Better than the traditional hit the wrong button/lose points.

Instructor was great, course was mostly very good except for too much focus on pricing

Class was easy to sign up for and ExitCertified provided very good communication

It would be better if the classroom had two power point screens so the instructor could have two screens shown to the class at the same time to reduce confusion switching back and forth

Overall ExitCertified is a great training provider and the remote learning is as effective as in person.

0 options available

There are currently no scheduled dates for this course. If you are interested in this course, request a course date with the links above. We can also contact you when the course is scheduled in your area.

Contact Us 1-800-803-3948
Contact Us
FAQ Get immediate answers to our most frequently asked qestions. View FAQs arrow_forward