Java Specialists' Java Training Europehome of the java specialists' newsletter

Extreme Java - Advanced Topics Course Outline

Finishing School for the Professional Java Programmer

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 8:30am 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!

Make Enquiry

 


1. Course Overview 2. Course Outline
Extreme Java - Concurrency and Performance for Java 8
Extreme Java - Advanced Topics for Java 8
Design Patterns
In-House Courses

© 2010-2016 Heinz Kabutz - All Rights Reserved Sitemap
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. JavaSpecialists.eu is not connected to Oracle, Inc. and is not sponsored by Oracle, Inc.