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

28/01/2019 - 02/02/2019
(Mon - Sat, 18:00 - 21:00)
Click here to book

25/11/2019 - 27/11/2019
(Mon - Wed, 10:00 - 17:00)
Click here to book

If none of the above dates suit you or if you'd like to come to a course sooner please either email us or click on the book button and let us know if you would prefer to come to a weekday, weekend or evening course and we'll try to arange a suitable date as soon as possible! You won't have to commit or pay until everything is confirmed.

Other dates for one-to-one tuition or for groups of 3 students or more are available on request and bookings can be made here (prices available on request):
Click here to book

Dates in other locations

Please click on the town for more details:

30/04/2018 - 05/05/2018 (Mon - Sat, 18:00 - 21:00)

28/05/2018 - 30/05/2018 (Mon - Wed, 10:00 - 17:00)

01/06/2018 - 03/06/2018 (Fri - Sun, 10:00 - 17:00)

30/07/2018 - 04/08/2018 (Mon - Sat, 18:00 - 21:00)

27/08/2018 - 29/08/2018 (Mon - Wed, 10:00 - 17:00)

31/08/2018 - 02/09/2018 (Fri - Sun, 10:00 - 17:00)

29/10/2018 - 03/11/2018 (Mon - Sat, 18:00 - 21:00)

26/11/2018 - 28/11/2018 (Mon - Wed, 10:00 - 17:00)

30/11/2018 - 02/12/2018 (Fri - Sun, 10:00 - 17:00)

28/01/2019 - 02/02/2019 (Mon - Sat, 18:00 - 21:00)

25/02/2019 - 27/02/2019 (Mon - Wed, 10:00 - 17:00)

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