Java Course in London

Course description

This is a fast-paced five-day course covering a wide range of topics including a Java syntax review; class design; the collections framework; databases; test-driven development; concurrency; web services and design patterns.

During the course, we assemble an ecommerce type Web Application, using Dependency Injection to connect application layers. A Repository Layer maps entity classes to a MySQL database using Spring Data Persistence. A Service Layer contains business logic and a Web Service is implemented as a REST Controller Layer with Spring. HTML User Interfaces to the web service are built with Bootstrap and jQuery AJAX. View Course Outline.

We have been training Developers Since 1999. Call us today to discuss how we can train your staff to build and maintain Java server-side applications.
Telephone 0118 966 4994 or email

Scheduled Dates

8 - 12 June, £1600 +VAT
10 - 14 August, £1600 (early bird price £1360 when booked 2 months in advance) +VAT

On-site courses are also available: we can provide customised courses, either at your offices or our offices, for a fee of £4800+VAT for 5 days and up to 10 attendees, including the use of laptops if required.

Course hours are 9:00 to 5:00 at serviced offices in central London, near Paddington station, with a maximum of six delegates. View map

Related courses

Our Introduction to Java Programming course is intended for developers who are new to programming.

What you will learn
  • Object-oriented programming in Java
  • Test Driven Development including mock objects
  • Build automation with Maven
  • Lambda expressions and the Stream API
  • Concurrent and asynchronous programming
  • JDBC and SQL CRUD operations
  • Spring Boot Web applications, including REST services
  • Persistence to a MySQL database with Spring Data JPA
  • Web Service Clients with jQuery AJAX
Course instructor

Originally a Civil Engineer with a BSc from London University the course instructor, Simon Dineen, has 20 years' experience in Java training and development.

  • Great course - coming from a manual testing background, I learned a lot of Java programming concepts and how it works with different frameworks etc. There’s a lot to take in and practice. One comment- course develops quickly and goes on to very advanced topics. However, Simon tried his best to explain everything in detail. Overall I am pleased and would recommend.

  • Loved the class size. The material was the right level. Learnt a lot; time to practice now. Simon is very knowledgeable and quite reachable to ask any questions. Glad to have found this course at short notice and glad to have attended.

  • I am very pleased with the content, delivery and level of professionalism. Would highly recommend the course. One negative for me as a beginner in Java; I felt an extra day or two would have been very beneficial. Overall, Excellent.

  • Very good training. All felt confident and comfortable getting trained in Java by Simon. Very good patience. Good knowledge to support all levels of developers.

  • Absolutely excellent, fast-paced but that’s what I was hoping for. Good selection of topics.

  • Trainer was approachable and very knowledgeable. I appreciated the time and patience given to me as I was the slowest on the course.

  • I enjoyed the fast pace of the course. It’s given me the concepts which I now need to improve through practice.

  • Really enjoyable. Would recommend. Thanks

  • Fantastic introduction; so much information covered in one week.

  • It was highly intensive but easy to follow

  • Just wanted to say thanks for the course last week. I got a huge amount out of it. I really liked the way you built up the different components/apps over the week.

Course outline

1. Java Syntax Review

  • The IntelliJ Development Environment
  • Operators and precedence
  • Strings and immutable types
  • Mutable types and the StringBuilder class
  • Conversion, casting and autoboxing
  • Declare arrays of primitive or class types
  • Conditionals and loops
  • Catching and throwing exceptions
  • Enumerated types

2. Class Design

  • Defining a class with fields and methods
  • UML class diagrams and sequence diagrams
  • Packages and encapsulation
  • Constructors and method overloading
  • Inheritance compared with composition
  • Invoke a specific base class constructor
  • Method overriding and Polymorphism
  • Abstract classes and interfaces

3. Build automation with Maven

  • The standard directory structure
  • Lifecycle phases and plugin goals
  • Dependency management

4. Test-driven development

  • Writing unit tests with “arrange, act, assert” phases
  • The “Red, Green, Refactor” development cycle
  • Mocking dependencies with the Mockito library
  • Customized assertion matchers with Hamcrest
  • Parameterized tests and integration tests

5. Collections

  • Using generic collections including Sets, Lists, Deques and Maps
  • Generic interfaces with default and static methods
  • Overriding equals and hashCode
  • Operation time against size for different collections (Big-O notation)

6. The Stream API

  • Functional interfaces, anonymous inner classes and lambda expressions
  • Filtering and projecting data with the Stream interface and collecting results
  • Primitive streams and the Optional class

7. Databases

  • Writing try-with-resources blocks to ensure connections are closed
  • Using SQL to create tables, insert rows and perform table joins
  • Using JDBC to connect to a MySQL database and execute SQL expressions
  • Writing try-with-resources blocks to ensure connections are closed

8. Input/Output

  • Building Byte Streams and Character Streams
  • Writing to a file with the java.nio.file package
  • Serializing objects to a file as JSON

9. Concurrency

  • Building multi-threaded code with Executors and the Callable and Future interfaces
  • Using thread safe collections and the Atomic classes
  • Parallel processing with lambda expressions
  • Building asynchronous computations with chained CompletionStages
  • Load testing with the tempus-fugit library

10. The Java platform module system

  • The Java module concept
  • Naming modules, requiring modules and exporting packages

11. Introduction to Spring

  • Building and running a simple Spring Boot application with IntelliJ and Maven
  • Describing application layers with UML class and sequence diagrams
  • Building a Service layer and injecting dependencies

12. Spring Data JPA

  • Building Repository classes with CrudRepository
  • Handling associations between entities
  • Using the query builder mechanism built into Spring Data repository
  • Configuring the application to connect to the MySQL database

13. Spring Web Service

  • Mapping HTTP requests to Controller methods
  • Responding to HTTP GET, POST, PUT and DELETE
  • Handling exceptions and returning appropriate HTTP responses
  • Testing the Web Service with Postman

14. Web Service Client

  • jQuery syntax, selectors and events
  • Calling the web service with jQuery ajax
  • Building a responsive user interface with Bootstrap

15. Design principles and patterns

  • A number of principles and patterns are discussed during the course including the Strategy, Factory Method, Abstract Factory, Singleton, Decorator and Observer patterns and the design principles on which these are built