Java Course

Course description

This fast-paced instructor-led online course covers Java application development. While we’ve currently suspended classroom-based training, we’re using video conferencing and remote desktop software, enabling the instructor to view your code and assist with exercises remotely.

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 or view a 3 minute video

Scheduled Dates

14 - 17 December, £1200 +VAT

Customised Training

As well as scheduled courses, we can provide customised training for a team or for individuals, starting at £400+VAT per day. To configure a custom course, click the "Select" button for modules in the course outline or start by adding all modules and then remove any not required.

Talk to us

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

Related courses

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

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 programming

Review of Java fundamentals. This is intended as a recap for developers who are already familiar with object-oriented programming but may need a refresher. For customised courses, the time spent on this section can be increased or decreased
  • JDK 14 tools including javac, java, jar and javap
  • Setting up the IntelliJ Development Environment
  • Keywords; primitive types; conversion and casting; operators
  • Local variables; conditions and loops; switch blocks; recursion
  • Instance variables, encapsulation, access modifiers, constructors
  • Mutable and immutable types; arrays
  • Inheritance; method overriding and polymorphism; the Object class
  • The Exception class hierarchy; catching and throwing exceptions
3 units

2. Collections

The Java collections framework and building a domain model
  • Generic classes and interfaces; the collections hierarchy
  • Using implementations of the List, Set and Deque interfaces
  • Overriding the equals and hashCode methods
  • Using Big O notation and relative speeds of collection methods
  • Wrapper classes; dates and times; enums; domain classes
1 unit

3. Lambda expressions and the Stream API

Using the Stream API to process collections
  • 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
  • Repository classes and interfaces; test driven development with jUnit and Mockito
  • Byte streams and character Streams; serializing objects to a file as JSON
1 unit

4. Concurrency, JDBC and modules

Asynchronous and concurrent programming and interacting with a database using JDBC
  • Building multi-threaded code with Executors and the Callable and Future interfaces
  • Using thread safe collections and the Atomic classes
  • Building asynchronous computations with chained CompletionStages
  • Load testing with the tempus-fugit library
  • Using SQL to create tables, insert rows and perform table joins
  • Connecting to a MySQL database with JDBC; the Autocloseable interface
  • Java module declarations; exporting packages; dependencies
1 unit

5. Spring data and REST

Using Spring Boot to build a REST service that connects to a database
  • 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
  • Building Repository classes with CrudRepository; associations between entities; using the query builder mechanism
  • Configuring the application to connect to the MySQL database
  • 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
2 units

6. Spring application with UI

Building a Spring ecommerce type application, using jQuery Ajax to call Spring controller methods
  • jQuery syntax, selectors and events
  • Calling the web service with jQuery ajax
  • Building a responsive user interface with Bootstrap
  • Writing Spring controller, service and repository classes
2 units