Introduction to Java Programming

Course description
This is an introductory three-day course aimed at newcomers to Java and who need to become familiar with the fundamentals. The pace can be adjusted to suit your requirements and the content is modular: additional topics can be added from the advanced course, such as building a user interface or connecting to a database.

To discuss this course further, or to make a booking, please telephone 0118 966 4994 or email
Venue and fee
This course can be provided as individual tuition for £1950+VAT on dates that are convenient for you. We can deliver the training either at your offices or alternatively at our offices in Reading.
What you will learn
  • Introducing Java
  • Core Language Features
  • Loops and Logic
  • Arrays and Strings
  • Defining Classes
  • Extending classes and Inheritance
  • Abstract classes and Interfaces
  • Generics and the Collections Framework
  • Input and Output
  • Threads

No existing programming experience is assumed.

Related courses

Our Advanced Java Course is intended for developers who are already familiar with object-oriented programming, either in Java or a similar language such as C# or C++

Course instructor

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

  • 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. Introducing Java

  • Features and uses of the language
  • Overview of the Java Development Kit and the Java Runtime Environment
  • Using the Eclipse Integrated Development Environment
  • Building, compiling and running a simple command line application

2. Core Language Features

  • Data and variables
  • Integer and floating point data types
  • Arithmetic calculations
  • Enumerations
  • Operator precedence

3. Loops and Logic

  • Making decisions
  • Logical operators
  • The switch statement
  • For and while loops
  • Nested loops with break and continue statements
  • Assertions

4. Arrays and Strings

  • Defining and using arrays of primitives and of Strings
  • Operations on Strings
  • Mutable Strings and the StringBuilder class

5. Defining Classes

  • Declaring a class
  • Comparing local and instance variables
  • Defining methods
  • Creating an object
  • The default constructor and overloading constructors
  • Understanding packages
  • Controlling access to class members

6. Extending classes and Inheritance

  • Creating a derived class
  • Overriding methods
  • The Object class
  • Casting objects

7. Abstract classes and Interfaces

  • Defining abstract classes
  • Understanding interfaces and comparing them with abstract classes
  • Using polymorphism

8. Generics and the Collections Framework

  • Defining and instantiating a Generic class type
  • Using Sets, Lists and Maps
  • Overriding the equals and hashCode methods

9. Input and Output

  • Understanding streams
  • Accessing files with the Path class
  • Using input and output streams to read and write bytes
  • Using character streams to read and write text

10. Threads

  • Understanding threads
  • Implementing the Runnable interface
  • Synchronizing threads
  • Using an executor to execute a Callable task