Java Course


Customisable Java course that can be delivered online or at your offices.

This fast-paced instructor-led online course covers Java application development. 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.

Course content

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 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.
  • 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
  • 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
3 units


The course wil be held at modern serviced offices next to Paddington Basin in West London