Getting Started

  • Java Basics
  • Data Types
  • Arrays and References
  • Operators and Constructs
  • Java Objects
  • Dynamic Memory Allocation
  • Java Methods
  • Java Strings

Classes and Objects

  • Class Design
  • Fields and Access Control
  • Constructors
  • Method Overloading
  • Static Methods
  • Inheritance
  • Method Overriding
  • Using final and super
  • Abstract Classes and Methods
  • Dynamic Binding
  • Polymorphism

Working with Classes

  • Using instance of
  • Interfaces
  • Exception Handling
  • Exception Objects
  • Throw points, throws clause
  • Try, catch, finally

User Interfaces

  • Window Applications
  • Layout Managers
  • Event Handlers and Listeners
  • Anonymous Classes and Lambdas
  • Java Swing APIs
  • Basic GUI Controls
  • Menus and Menu Bars

Generics and Collections

  • Why Use Generics?
  • Generic Classes and Interfaces
  • Generic Iterators
  • Collections
  • ArrayList, LinkedList, HashMap

Threads

  • Thread States
  • Extending the Thread class
  • Timer Thread
  • Implementing the Runnable interface

File I/O

  • Input and Output Streams
  • Binary and Text Files
  • Files and Directory Methods
  • Stand-alone applications and servlets
  • Compiling source code into bytecode
  • Overview of class libraries

Object-Oriented Programming with Java

  • The object paradigm
  • Encapsulation, inheritance, and polymorphism
  • OO (Object–Oriented) analysis and design
  • Designing an OO application step by step
  • Diagramming object structure with UML (Unified Modeling Language)
  • Java object-oriented features
  • Instantiating objects from classes
  • Aggregation and composition
  • Extending existing classes
  • Overloading and overriding methods

Structure of the Java Language

  • Language syntax
  • Declaring and initializing variables
  • Declaring and using arrays
  • Upcasting, down casting, and autoboxing
  • Flow control
  • Invoking methods and passing parameters
  • Conditionals and loops
  • Handling exceptions with try and catch
  • Defining classes
  • Fields (instance data)
  • Methods (functions)
  • Abstract classes and interfaces
  • Organizing classes with packages and modifiers
  • Composition vs. inheritance
  • Building the components of a Java program
  • Leveraging generics with the collections API (Application Programming Interface)
  • Developing new classes
  • Compiling and debugging

Developing GUIs

  • Foundations of user interfaces
  • Basic GUI (Graphical User Interfaces) widgets
  • Event-driven programming
  • Benefits of a portable windowing library
  • Java Foundation Classes (JFC)
  • Creating Swing components
  • Adding Swing components to containers
  • Arranging Swing components using layout managers
  • Dialogs and message boxes
  • Event handling
  • Registering event handlers
  • Inner classes and top-level classes

Storing and Retrieving Data with File I/O (Input/Output)

  • Java streams
  • Streams, Readers, and Writers
  • Catching and throwing exceptions
  • Formatting text output
  • Files and directories
  • Reading and writing files
  • Creating, deleting, and renaming files
    Obtaining directory and file information

Working with Relational Databases

  • JDBC database access
  • Leveraging the JDBC API
  • Choosing database drivers
  • Connecting to a database
  • Improving performance with prepared statements and stored procedures
  • Submitting SQL (Structured Query Language) statements
  • Retrieving and processing results

Java Development Tools

  • Java Development Kit (JDK)
  • Compiler (javac)
  • Javadoc utility
  • JAR (Java ARchive) utility
  • Java IDEs (Integrated Development Environment)