Training Limited
Java Advanced
Aimed at Java users who want to improve on their core Java skills
Course Content 5 Days

This course is aimed at existing Java developers who wish to obtain a deeper understanding of advanced Java programming techniques. The course also explores the new features introduced in Java SE 7.


Multithreading Techniques

Java synchronization language features; Designing thread-safe classes; Recommendations for synchronizing resource access

Additional Multithreading Issues

Using concurrent collections; Thread pooling techniques; Exception handling in a  multithreaded environment; Avoiding deadlock and starvation

TDD and Multithreading

Writing effective unit tests; Using mocking frameworks

New Language Features in Java SE 7

Strings in switch; Binary integral literals; Underscores in numeric literals; Multi-catch and precise rethrow; Improved type inference for generic instance creation; try-with-resources statement; Simplified varargs method invocation; Lambda expressions

Advanced Java File IO techniques

NIO Buffer; ByteBuffer, CharBuffer, DoubleBuffer, etc; Channels; File locking; Transferring data & exceptions; Invoking chaining

Remote Method Invocation (RMI)

Distributed Java applications; Stub and skeleton layer; Naming remote objects; Callbacks; Dynamic class loading; Distribution of RMI classes; Serialization of remote objects; Untrusted code; Managing security policies; Securing applications and applets; RMI vs. sockets and object serialization

Java Reflection

Dynamic retrieval of information using reflection; Creating instances of extensibility objects; Test harnesses; Class fields, methods and constructors; Arrays and enumerated types; Improving exception handling with reflection and generics; Performance and security

Java Serialization

Object persistence; Using; Writing and reading objects; Serialized GUI objects; Exception handling; Customising the default protocol; Version control; Performance considerations

Who Should Attend
Java developers looking to dig deeper into the language and platform.

At least 6 months solid Java experience.