The content will be broken down as
Saturday April 6th from 9 am - 5 pm. The timings will be shorter than listed.
- Java 7 Syntax (2 hrs),
review of the Java syntax, scope and inheritance, pass by value, use of volatile, when to use singletons - Dependency Injection (2 hrs),
How to DI without a framework to complicate your system. - Maven builds (2 hrs).
How to use maven builds to simplify your builds, releases and deployment. How maven can be used with continuous integrations. - Java 7 Builin libraries (2 hrs)
High level review of built in libraries including some which are under utilised like Exchanger. - Simplified JDBC (2 hrs)
Using batching to improve performance - Design pattern (2 hrs)
A look at design patterns which are useful for trading.
Saturday April 13th from 9 am - 5 pm. The timings will be shorter than listed.
- Reflection (2 hrs)
Advanced reflection and annotations for use in building mini-frameworks. - Static Code Analysis (2 hrs)
Tools which help find issues and fix them. Patterns to use and to avoid. - Built in Date library and Joda Time (2 hrs)
Look at the library which is the basis for the new date/time library in Java 8. - Memory Leak detection and fixes (2 hrs)
What is a memory leak in Java? What tools are available to help find them? What can you do to fix or avoid them? - Lightweight object design (2 hrs)
Using mutable objects in a single thread and immutable objects in multiple threads. Using primitives like double or long for prices and long for dates. - JVM tuning parameters(2 hrs)
What you can set and what you might change them to? When to leave them alone.
Saturday April 20th from 9 am - 5 pm. The timings will be shorter than listed.
- Profiling tools (2 hrs)
Profiling CPU usage, memory usage and other resources using VisualVM and a commercial profiler. - Refactoring (2 hrs)
When to refactor and how to do it with the minimum of risk to your project. - Micro-benchmarking (4 hrs)
How to micro-benchmark and how to make sense of the results. When are micro-benchmarks useful and when they can be deceptive. - Simple IO (4 hrs)
Reading and writing text and binary in Java. A quick look at performance. - Collections (4 hrs)
Under the covers look at built in collections including CopyOnWriteArrayList, ArrayBlcokingQueue and ConcurrentHashMap. A look at alternative such as Trove and Javolution
The location of the course will depend on the number attending. There will be no more than six students per instructor.