Advanced Java: Improve your code

Course Description

This course follows on from the Java for Beginners introduction. Designed to broaden both the candidates breadth and depth of knowledge of the core Java Platform and its API.


£ 825 (incl. VAT)


18 hours

Course Details

  • Apply proven Java best practices to increase productivity and build fast, secure and reliable software, for example: When and how to use Interfaces, Abstract Classes and Nested Classes, instantiating objects vs. subclasses.
  • Utilise proven Design Patterns to solve architectural problems and explore advanced language features. We will build a Model-View-Controller GUI application to show the advantages and disadvantages.
  • Multi-threading: Explore Java's built in concurrency support to build multi-theaded applications that fully exploit todays multi-core chip architectures.
  • Gain further knowledge of areas such as the Collections API and Generics.
  • Under the hood of the Java Virtual Machine: Learn more about the JVM and current trends in platform usage.

There will be a strong practical element to this course with approximatly 50% of the time spent doing practical exercises to cement the knowledge gained. We will utilise the popular Eclipse IDE and various open source tools and framworks througout the course.

Effective Java Programming

What are the goals of best practice.

Test Driven Development

Unit testing via the JUnit framework. Automating testing through continuous integration.

Code Quality

Attain type safety and eliminating run time errors with Generics. Writing generic classes and methods. Learn to identity and correct deficient code through refactoring and loose coupling.

Design Patterns and Managing Change

Learn the key Object Oriented Design Patterns (Template Method, Strategy, Proxy, Singleton, Observer, Factory) and their need/applicability to the software design and implementation process. Learn about Inversion of Control and the benefits it brings. Use MVC to create a GUI application with the Swing libraries

Effective use of the Collections API

Selecting the best collections classes. Prevent memory leaks with weak/phantom references.


Understand the issues around accessing relational database data from an object centric programming paradigm. Use an Object-Relational mapping framework (Hibernate) to solve it and work at a higher abstraction layer than raw JDBC.


Explore and understand the Java concurrency API's particularily the new functionality offered with Java 5 and now 6. Write reliable thread safe code. Avoiding race conditions and deadlocks. Learn to manage the performance implications of synchronisation.

Packaging and Securing Your Application

Learn how to package and secure your code for delivery. Utilise code signing and obfuscation to secure your intellectual property.

The Java Virtual Machine

Discuss the rise of alternative JVM languages (Scala, Groovy) and details their pros/cons with respect to Java. Java 7, whats coming up?

Norwich Dates

This course is currently only available for groups of 5 or more delegates. Please email us for more information and prices.

Please email us (with the course name and date) if you would like to book by email: