Java Essentials

About This Course

This is a 2-day course on Java programming where you will be introduced to the basics of Java programming: data types, strings, arrays, expressions, loops, and functions. You’ll learn how to control the flow and logic of your code and create classes using the principles of object-oriented design. Then go a bit beyond the basics and learn advanced techniques for working with arrays, manipulating files, and building graphical user interfaces (GUIs) that respond to user input. This course is perfect for developers who need to get up to speed with Java fast, as well as for beginning programmers who want their first taste of this popular language.

Learning Objectives

  • Understand Java basics – data types, strings, arrays and more.
  • Learn how to control flow with functions and loops, creating classes, sorting and searching arrays.
  • Learn how to manipulate files, simplify generics and work with advanced class structures (member, local inner etc.)
  • Understand how to use reflection API and navigate inheritance trees.
  • Learn how to use managing unordered and ordered sets, peeking and polling with queues.
  • Understand the testing and error handling skills, managing files and directories,working with I/O streams and multi-threading.

 

Prerequisites

NA

Target Audience

Programmers who want to learn basic and advanced Java

Training Outline

1.     Getting Started

  • What is Java?
  • Downloading the Java IDE (NetBeans)
  • Flowcharting and UML diagrams
  • Understanding algorithms
  • Exploring the IDE
  • Command-line programming with Java
  • Creating Java docs

2.     Java Basics

  • Anatomy of a Java program
  • Understanding data types
  • Using strings
  • Understanding arrays
  • Understanding implicit and explicit conversion
  • Debugging logic and syntax errors
  • Using the debugger

3.     Flow of Control

  • Understanding basic expressions
  • Working with decisions
  • Comparing different types of loops
  • Using predefined functions 
  • Creating user-defined functions
  • Using call by value and call by reference
  • Overloading functions

4.     Classes and Objects

  • Creating classes
  • Instantiating classes
  • Using encapsulation
  • Understanding inheritance
  • Working with polymorphism

5.     Advanced Arrays

  • Revisiting arrays
  • Working with two-dimensional arrays
  • Using ArrayLists
  • Introducing recursion
  • Sorting arrays
  • Searching arrays

6.     Using Generics

  • Exploring the simplified use of generics
  • Using underscores in numeric literals
  • Using strings in switch statements

7.     Using Advanced Class Structures

  • Using static initializers
  • Using instance field initializers
  • Using member classes
  • Using local inner classes
  • Using anonymous inner classes
  • Creating and using enumeration classes

8.     Using Reflection API Topic

  • Using the Class class
  • Instantiating classes dynamically
  • Navigating inheritance trees

9.     More of the Collections Framework

  • Managing unordered sets with HashSet
  • Managing ordered sets with TreeSet
  • Controlling list order with LinkedList
  • Peeking and polling with queues

10.     Testing and Advanced Exception Handling Topic

  • Exploring test-driven development with the assert keyword
  • Using the finally keyword
  • Using try-with-resources in Java 7
  • Defining and throwing a custom exception

11.     Managing Files and Directories in Java

  • Using the Path class
  • Managing files and directories
  • Reading and writing text files
  • Walking the directory tree
  • Finding files
  • Watching a directory for file changes

12.     Working with I/O Streams

  • Reading and writing byte streams
  • Reading and writing character streams
  • Using buffered streams
  • Scanning tokenized text

13.     Working with Multi-threading

  • Extending the Thread class
  • Implementing the Runnable interface
  • Interrupting a thread
  • Synchronising threads