Home of The JavaSpecialists' Newsletter

Extreme Java - Advanced Topics Course

Finishing School for the Professional Java Programmer

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.

Is this course for you?

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?

"This course embodies my Java knowledge and experience gained publishing 250+ advanced Java newsletters, teaching hundreds of seminars and writing hundreds of thousands of lines of Java code."
Heinz Kabutz, The Java Specialists Newsletter

Enquiry Form


Prerequisites

This course is ideally suited to the professional Java programmer with at least 2 years experience, who would like to learn how to program advanced core Java.

Pricing Options

There are several options for you to attend this course:

1. Inhouse Course:

Presented at your company either in person by one of our Certified JavaSpecialist Instructors or via video conferencing. Price is €6500 for up to 10 students, above that is an additional €650 per student, plus the travel expenses of the instructor.

2. Classroom Course:

We offer this course as a class room course in Chania on the Island of Crete. Price for the 4 day course is €1300 per student.

* Price is excluding EU VAT and withholding taxes where applicable. Please contact us for an exact quote for your country.

Open Courses

Location Dates Presenter Language Fees
Java Specialists Headquarters
Chania - Greece
21-22 Aug 2017 Kabutz English €1300
Java Specialists Headquarters
Chania - Greece
23-24 Oct 2017 Kabutz English €1300

* Price is excluding EU VAT where applicable. Please contact us for an exact quote for your country.

Detailed Outline

Extreme Java - Advanced Topics
Extreme Java - Advanced Topics
Imagemap
1. IntroductionWelcome!Course organizationCourse overview2. Java IOObject Streams and SerializationObject SerializationSimple Object SerializationSerializable FieldsResetting StreamsreadObject() / writeObject()Controlling SerializationSerial Object VersioningOverriding VersioningSerialization PerformanceSerialization PitfallsJava New IO PackageMotivation for UsingWorking with BuffersAllocating BuffersBuffers AdvantagesChannelsMemory Mapped FilesNon-Blocking Operations3. Java MemoryGarbage CollectionOverviewGenerational SpacesGC TasksHeap FragmentationEscape AnalysisGC Pros and ConsMeasuring GC ActivityPerformanceObject SizeTuning JVMPerformance TuningMemory LeaksLoitering ObjectsObject ChurnHeap SizingFinalizersHow it worksPerformance ImplicationsOther references4. Reflection APIOverviewIntroductionUsefulness of ReflectionDangers of ReflectionExamining ClassesReflection PackageRetrieving Class ObjectsWorking with Class ObjectsAccessing fieldsAccessing methodsManipulating ObjectsCreating new objectsGetting and Setting FieldsFinal fieldsInvoking MethodsWorking with Arrays5. Data StructuresTime ComplexityAlgorithm ComplexityExamples from JavaIterationIterators"for-each" iterationIterable interfaceConcurrentModificationCopyOnWrite CollectionsHashingHow Hashing WorksJDK 1.4+ rehashingCompound KeysLinked MapsSortingDefining Natural OrderComparatorsTreesQueuesQueuesPriorityQueueBlockingQueueDeques6. ExceptionsError HandlingClass HierarchyException ClassError ClassBest PracticesChecked vs. UncheckedAvoid Custom ExceptionsWriting Good ExceptionsWrap Low Level ExceptionsAvoid Catching "Programmer Bug" ExceptionsPerformance of ExceptionsChain ExceptionsAvoid Swallowing ExceptionsCleanup After An ExceptionJava 7 try-with-resourceLosing an Exception in finallyNever Abuse Exceptions for Flow ControlThrow Exceptions EarlyCatch Exceptions LateGood Throws ClausesDocument ExceptionsUnit Test ExceptionsAssertionsMechanism"assert" StatementWhen to UseWhen Not to UseJVM switches7. Dates and Time ZonesComputer TimeTime SynchronizationHuman Time InterpretationTime in JavaIntroductionjava.util.DateJSR310 vs Joda Timejava.util.TimeZonejava.util.DateFormat8. LoggingOverviewWhy log?Principal RequirementsMain Logging APIsBest PracticesDefining Logging SchemeLogging LevelsLog Messages FormatCentralized LoggingCode GuardsExceptionsReviewing LoggingImpact on PerformanceUnecessary StringsWriting to DiskAsynchronous Logging9. ConclusionWhere to next?Never stop learning!

The "Extreme Java - Advanced Topics" Course lasts 2 days.

We spend approximately 50% doing active hands-on labs.

Each days training starts at 9:00am and ends at 17:00, with about one hour of lunch and 30 minutes of tea / coffee / nicotene breaks.


  • 1. Introduction
    • Welcome!
    • Course organization
    • Course overview

  • 2. Java IO
    • 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
    • Java New IO Package
      • Motivation for Using
      • Working with Buffers
      • Allocating Buffers
      • Buffers Advantages
      • Channels
      • Memory Mapped Files
      • Non-Blocking Operations

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

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

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

  • 6. Exceptions
    • Error Handling
      • Class Hierarchy
      • Exception Class
      • Error Class
    • 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
    • Assertions
      • Mechanism
      • "assert" Statement
      • When to Use
      • When Not to Use
      • JVM switches

  • 7. Dates and Time Zones
    • Computer Time
      • Time Synchronization
      • Human Time Interpretation
    • Time in Java
      • Introduction
      • java.util.Date
      • JSR310 vs Joda Time
      • java.util.TimeZone
      • java.util.DateFormat

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

  • 9. Conclusion
    • Where to next?
    • Never stop learning!


About the Author

demo

Java Champion, author of the Javaspecialists Newsletter, conference speaking regular... About Heinz


110% Money-back Guarantee

Should you not be satisfied with the quality of the training or the delivery, we will gladly refund you 100% of the course fees. This needs to be brought to our attention within the first 4 hours of the course and a chance should be given to correct whatever you are not satisfied with. If you are still not satisfied, we will refund you 100% of the course fees, plus we will pay our own travel expenses. The training material then remains the property of JavaSpecialists.EU.


Cancellation Policy

If the course is cancelled more than two weeks before the start of the course, a 10% cancellation fee of the fees will apply, plus any non-refundable travel expenses incurred by the trainer.

If the course is cancelled within two weeks of the start of the course, a 50% cancellation fee of the fees will apply, plus any non-refundable travel expenses incurred by the trainer.

No refund will be given to cancellations during the course.


Java Training

We deliver relevant courses, by top Java developers to produce more resourceful and efficient programmers within their organisations.

Java Consulting

Nobody ever wants to call a Java performance consultant, but with first-hand experience repairing and improving commercial Java applications - JavaSpecialists are a good place to start...

Threading Emergency?

If your system is down, we will review it for 15 minutes and give you our findings for just 1 € without any obligation.