Java Fundamentals

A comprehensive introduction to programming in Java

Overview

This course introduces the key components of the Java programming language. Starting from first basics, it introduces the essential Java language syntax, idioms, and tools required to quickly become productive as a Java developer.

As with all our courses, the syllabus can be tweaked to cover more advanced topics, depending on your needs.

The course is delivered by a seasoned Java developer with over 25 years of commercial experience, including 13+ years working with Java.

Outline

Core Programming Concepts

  • Variables, functions and libraries
  • Compiled programs vs interpreted scripts
  • Typed and untyped programming
  • Static vs dynamic typing
  • Threads and call stacks
  • Errors and exceptions

Core Java Concepts

  • Origins and goals of the Java language
  • Bytecode and the Java Virtual Machine
  • Packages and dynamic class loading
  • Garbage collection in Java

Creating Simple Programs

  • Writing Hello World! in Java
  • Declaring variables to hold numbers
  • Declaring variables to hold strings
  • Casting and converting between types
  • Reading and writing from the console

Making Choices and Looping

  • Conditional execution using the if statement
  • Conditional execution using the switch statement
  • Bounded iteration using the for loop
  • Unbounded iteration using the while and do … while loops
  • Alerting the execution of a loop using break and continue
  • Different ways of writing infinite loops

Java Methods in Depth

  • What does the static keyword mean?
  • Understanding how parameters are passed
  • Choosing if a method should be public or private
  • Understanding recursion and writing recursive methods

Introduction to Object Orientation

  • What is a data structure?
  • Why are data structures dangerous?
  • What are classes and objects?
  • What makes an object different from a class?
  • Key principle one – Abstraction
  • Key principle two – Encapsulation
  • How do you avoid repetition in classes?
  • Key principle three – Inheritance
  • How do you change inherited behavior?
  • Key principle four – Polymorphism

Support for OO in Java

  • Allocating objects from the heap
  • Linking to objects via references
  • Moving references to other objects
  • Pointing a reference at null
  • Ensuring an object is no longer referenced
  • A brief introduction to the theory of garbage collection

Built in Objects in Java

  • Strings are objects in Java
  • Arrays are objects in Java
  • Every class has an instance of Class

Object Oriented Development Part One

  • Creating basic Java classes
  • Choosing accessibility levels
  • Overloading and overriding methods
  • Overriding the toString method
  • Comparing references using the instanceof operator
  • Comparing references using class objects
  • Inheriting from a base class
  • Creating abstract and final classes

Object Oriented Development Part Two

  • Writing appropriate class constructors
  • Private constructors and singletons
  • Static and instance initialization blocks
  • Top down class and object initialization
  • Declaring and using interfaces
  • Using inner and anonymous classes
  • Implementing equal and hashcode
  • Cloning and copy constructors
  • GUI Development in Java
  • How the Swing library works
  • Creating a window class via inheritance
  • Adding widgets to the window
  • Positioning widgets using layout managers
  • Adding event handling to the GUI

Exception Handling in Java

  • Introducing errors, runtime exceptions and checked exceptions
  • Exceptions in constructors and finalizers
  • Implementing an effective exception handling strategy
  • The correct use of finally blocks
  • Using Java assertions

Java I/O

  • Introducing input and output streams
  • Introducing readers and writers
  • Using File objects to resolve file paths
  • Text based file I/O with buffered streams
  • Binary based file I/O using data streams
  • Serializing Java objects
  • Customizing Java Serialization

Sign up and stay in the loop

Be the first to know about upcoming workshops, courses, talks and events

Learn more

I found this course incredibly helpful, as a graduate I felt I had a fair knowledge of Java, I was wrong this course explained everything in such a great and easy to follow way. I have learned more in these few days than my few years at university.