2309 N 24th Street

Phoenix, AZ 85008

Telephone: +1 800 930 0987




▪ Overview of the Java Development Kit and the Java and the Java Runtime Environment

▪ The Development Environment (Eclipse or IntelliJ)

▪ Other tools and frameworks including Gradle, Git, Hibernate, JUnit and Mockito


Duration:  5 Days (Mon - Fri: 9:00 am - 6:00 pm)      


Price:  $1500 (50% reduced)


Start Date:  Dec/Jan




Pre-requisite:  This course doesn’t require previous programming experience. On completion of this course, students can proceed to Android development courses.

Note:  The course includes the hands on practice programming exercises with all the topics mentioned above. The instructor may amend course contents without any prior notice.

▪ Fundamentals of object-oriented programming in Java

▪ Test Driven Development including mock objects

▪ Distributed revision control with Git and build automation with Gradle

▪ Lambda expressions

▪ Object-relational mapping with Hibernate and JPA

▪ Web applications and JavaServer Faces

▪ Enterprise beans and Dependency Injection

▪ Desktop applications with JavaFX

▪ Concurrent and asynchronous programming

▪ Design principles and patterns

What will you learn 

Course Outline

9.  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.

8.  Concurrency

▪  Using generic collections including Sets, Lists, and Maps

▪ Writing interfaces with default and static methods

▪ Functional interfaces, anonymous inner classes and lambda expressions 8. Databases

▪ Using JDBC to connect to a MySQL database and execute SQL expressions

▪ Writing try-with-resources blocks to ensure connections are closed

▪ Using the Hibernate object-relational mapping library to store and retrieve objects

▪ Mapping associated classes to related tables with the Java Persistence API 9. Streams

  Building Bytes Streams and Character Streams with the and java.nio packages          

7.  Collections

▪ Writing unit tests with “arrange, act, assert” phases

▪ The “Red, Green, Refactor” development cycle

▪ Parameterized tests with the JUnitParams library

▪ Interactions testing with spies and stubs using the Mockito library

▪ Writing integration tests and including these in the Gradle build 

6.  Test-driven development

▪ Initializing a repository and cloning an existing repository

▪ Indexing and committing changes 

▪ Viewing the commit history and comparing versions of a file

▪ Creating and merging branches

▪ Pushing a branch to a remote server

5.  Distributed revision control with Git

▪ The standard directory structure

▪ Build lifecycle, plugins and tasks

▪ Dependency management 

4.  Build automation with Gradle


▪ 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.  Class Design

▪  Defining a class with fields and methods

▪ 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.  Java Syntax

1.  Java Platfrom Overview

The Apps Academy © 2016 

▪ Writing multi-threaded applications in Java using Java threads, runable interface and executors