Course Code: GLOXINIA/JT-CJT/01

Introduction of Java: What is Java?, How to get Java, A First Java Program, Compiling and Interpreting Applications, The JDK Directory Structure

Data Types and Variables: Primitive Datatypes Declarations, Variable Names, Numeric Literals, Character Literals, String, String Literals, Arrays, Non-Primitive Datatypes, The Dot Operator

Operators and Expressions: Expressions, Assignment Operator, Arithmetic Operators, Relational Operators, Logical Operators, Increment and Decrement Operators, Operate-Assign Operators (+=, ETC.), The Conditional Operator, Operator Precedence, Implicit type Conversions, The cast Operator

Control flow Statement:  Statements, Conditional (IF) Statements, Data types and Variables 3, Adding an ELSE IF, Conditional (Switch) Statements, While and Do-While Loops, For Loops, A for Loop Diagram, Enhanced for Loop, The Continue Statement, The Break Statement

Methods: Methods, Calling Methods, Defining Methods, Method PARAMETERS, SCOPE, METHOD Parameters, So, Why all the Static?

Object-Oriented Programming: Introduction to Object-Oriented Programming, Classes and Objects, Fields and Methods, Encapsulation, Access Controls, Inheritance, Polymorphism

Objects and Classes: Defining a Class, Creating an Object, Instance data and Class Data, Methods, Constructors, Access Modifiers, Encapsulation

Using Java Objects: Printing to the Console, PRINTF format Strings, Stringbuilder and Stringbuffer, Methods and Messages, Tostring, Parameter Passing, Comparing and Identifying Objects, Destroying Objects

Inheritance in Java: Inheritance, Inheritance in Java, Casting, Method Overriding, Polymorphism, Super, The Object Class

Packages: The Import Statement, Static Imports, Casting, Classpath and Import, Defining Packages, Package Scope

Exception Handling: Exceptions Overview, Catching Exceptions, The Finally Block, Exception Methods, Declaring Exceptions, Defining and Throwing Exceptions, Error and Runtime Exceptions, Assertions

Input / Output Streams: Overview of Streams, Bytes Vs. Characters, Converting Byte Streams to Character Streams, File Object, Binary Input and Output, Print Writer Class, Reading and Writing Objects, Basic and Filtered Streams

Collection Framework: The Collections Framework, The Set Interface, Set Implementation Classes, The List Interface, List Implementation Classes, The Map Interface, Map Implementation Classes

Inner Classes: Inner Classes, Member Classes, Local Classes, Anonymous Classes, Instance Initializers, Static Nested Classes

Introduction to Threads: Non-Threaded Applications, Threaded Applications, Creating Threads, Thread States, Runnable Threads, Coordinating Threads, Interrupting Threads, Runnable Interface, Threadgroups

Interfaces and Abstract Classes: Separating Interface and Implementation, UML Interfaces and Realization, Defining Interfaces, Implementing and Extending Interfaces, Runnable Threads, Abstract Classes

Serialization: Object Serialization, Serializable Interface, Serialization API, Objectinputstream and Objectoutputstream, Runnable Threads, Abstract Classes

Serialization: Object Serialization, Serializable Interface, Serialization API, Objectinputstream and Objectoutputstream, The Serialization Engine, Transient Fields, Readobject and Writeobject, Externalizable Interface

Generics: Using Generics, Type Erasure, Type Boundaries, Wildcards, Generic Methods, Strengths and Weaknesses of Generics, Legacy code and Generics

Annotations: Uses for Meta-Data, The Annotations Model, Annotation Types and Annotations, Built-In Annotations, Annotations Vs. Descriptors (XML)

Reflection: Uses for Meta-Data, The Reflection API, The Class Class, The Java.Lang.Reflect Package, Reading type Information, Navigating Inheritance Trees, Dynamic Instantiation, Dynamic Invocation, Reflecting on Generics