Advanced Java

Duration: 2 days
Type: advanced


This course is designed to enable experienced Java developers to deepen their knowledge of the Java language and platform. It can be used to transition delegates from one version of Java to another, to formalize the education of self-taught developers or to assist programmers taking on new responsibilities as senior developers and/or architects.

Unfortunately there is no 'one size fits all' agenda for an advanced Java course. Each team will have its own needs depending on their current skill-set and the requirements of upcoming projects. The list of modules below provides an overview of topics that are commonly requested, but additional items can be included as required.


Delegates should have at least 3 years experience in commercial Java programming

List of Modules

Generics in Depth

Understanding how non-reified generics is implemented in Java 5

Writing Java 6 Annotation Processors

Extending the Java language by creating your own compiler plug-ins

Object Oriented Design Patterns

The most common patterns used in Java development

Writing Java Web Services

Detailed coverage of JSR 181, JAX-WS, JAX-RS and JAXB

Java Language Idioms and Refactorings

Improving existing code via incremental improvements and best practises

Using the Google Collections Library

Taking advantage of the Google extensions to the standard collection types

The Log4J library

Configuring and using Log4J correctly

Scripting on the JVM

Automating build and testing tasks with JRuby, Jython and Groovy

Preview of new language features arriving in Java 7

Project Coin, Closures and the Fork / Join framework

Test Driven Development

Applying TDD using tools such as JUnit, TestNG, JMock and EasyMock

Overview of the Scala language

Using Scala as a simpler and more powerful way of developing JSE applications

Modularizing Large Java Applications with OSGi

Overcoming JAR versioning issues using OSGi bundles

Manipulating XML in Java

Using JDOM, StAX, XPath, XSLT and XQuery

Using the Java Persistence API V2

Simplifying your Data Access Layer using JPA and/or Hibernate