Course Contents (12 sessions of 3hrs each)
Introduction to SCJP and Java Language Basics • Introduction to SCJP Certification • Introduction to Different Java Editions • Standard Edition (J2SE), Enterprise Edition (J2EE), Micro Edition (J2ME) • Introduction to Java Language • What is Java Application Programming Interface (API) • Different Java APIs • Features of Java Language • How Java Program Compiles • How Java Program Runs • What is bytecode? • Introduction to Java Runtime Environment (JRE) • Introduction to Java Development Kit (JDK) • Writing First Java Program • Explanation of First Java Program • Different type of Java Comments • Java Primitive Data Types • Variables • Identifiers • Expressions • Keywords • Operators
Unary Operators • Increment and Decrement operators ( ++ and -- ) • Bitwise Inversion operators ( ~ ) • Boolean complement operator ( ! ) • Binary Operators • Arithmetic operators ( +, -, /, *, % ) • Comparison operators (<, <=, >, >=, ==, != ) • Bitwise operators (AND - &, OR - | , XOR - ^ ) • Short Circuit Logical operators ( && , || ) • Ternary operator ( ? : ) • Implicit Type Casting • Explicit Type Casting using cast operator • Java String Class • Creating String class object • Using String class functions • Class Exercises for Java Operators and String class
Control structures, Repetition structures and Arrays • Sequential Program flow • Controlling Program flow with conditional blocks • if statement • if-else statement • Nested if-else statements • Switch Case statement • break statement • default statement • Repetition structures in Java • for loop • while loop • do-while loop • Nested loops • break statement • continue statement • Introduction to Arrays in Java • Types of Arrays in Java • Single Dimension Arrays • Multi Dimension Arrays • Array Declaration • Array Allocation • Combining Array Declaration and Allocation • Array Initialization • Manual Initialization • Initialization with Loops • Combining Array Declaration, Allocation and Initialization • Accessing Arrays Elements • Array of Objects • Finding Array length at runtime • Using multi dimension arrays in java • Using Command line arguments • Class Exercises for For Loop, Nested Loop and Arrays
Object Oriented Programming in Java • Introduction to Object Oriented Programming • Benefits of Object Oriented Programming • What is Class • What is Object • Relation between class and object • Object state and behavior • Creating classes in Java • Creating objects in Java • Object declaration • Object Instantiation • Object Initialization • Different between value types and reference types • Constructors • Constructor Overloading • Constructor Chaining • Constructor Calling Order • Creating Default Constructor • Creating parameterized constructor • Java this statement • Destroying objects • Garbage Collection • How garbage collection works in java • Class Exercises for Java Classes and Constructors
Object Oriented Programming in Java • Creating instance variables • Creating class variables • Instance vs. class variables • Methods • Method Declaration syntax • Creating instance methods • Creating class methods • Instance vs. class methods • static variables • static functions • static blocks of code • Method Overloading • Rules of method overloading • Introduction to Encapsulation (Data Hiding) • Implementing Encapsulation in Java • Implementing business logic with encapsulation • Introduction to Inheritance ( is a relation ) • Implementing Inheritance in Java • Java class Hierarchy • Constructor Calling Order • Using super keyword • Method Overriding • Using Java final keyword • final variables • final methods • final classes • Class Exercises for Encapsulation and Inheritance with overriding
Object Oriented Programming in Java • Introduction to Composition (has a relation) • Implementing Composition in Java • Composing single object in class • Composing multiple objects in class • Introduction to Polymorphism • Implementing Polymorphism o Polymorphism with concrete classes o Polymorphism with abstract classes o Polymorphism with java interfaces • Introduction to Abstraction • Introduction to Abstract classes • Declaring abstract class • Declaring abstract function • Important rules about abstract classes and methods • Class Exercises for Polymorphism and Abstract classes
Object Oriented Programming in Java • Introduction to Java Interfaces • Declaring interface • Implementing interface • Implementing multiple interfaces • Interface Inheritance • Interface and multiple inheritance • Interfaces vs. abstract classes • Introduction to Nested classes • Creating objects of nested class • Using nested classes • Inheritance and nested classes • Important rules about nested classes • Access modifiers • public • private • protected • default access • Introduction to Java Packages • Creating packages in java • package and import statement • Introduction to Design Patterns • Implementing Singleton design pattern in java • implementing Abstract factory pattern in java • Class Exercises for Interfaces and classes
Debugging and Exception Handling in Java • Introduction to Exception Handling • Exception Handling and Java Runtime Environment • What is Exception • What is Error • Different between Error and Exception • Java Exception Hierarchy • Throwable class • Exception class • Error class • Understanding RuntimeException class • What is Exception Message • Implementing Exception Handling in Java • try block • catch block • finally block • Providing multiple catch blocks • Order of multiple catch blocks • Catching all exceptions with one generic catch block • Nested try catch blocks • Java throw statement • Wrapping and Throwing exceptions using throw statement • Java throws statement • Using throws statement with multiple exceptions • Creating custom Exceptions in java • Throwing custom Exceptions in Java • Printing Exception Details with Stack Trace • Line Number • Method Name • Class Name • File Name • Debugging Java code line by line • Creating Reusable Debug class in Java • Enable or Disable full application debugging from Debug class • Class Exercises for Login Form with Custom Exceptions
Multithreading and Concurrent Programming in Java • Multitasking • Multi Processing • Difference between Task and Process • Introduction to Multithreading • What is thread • Threading features in Java API • Thread class • Runnable Interface • Creating Threads in Java using Thread class • Creating Threads in Java using Runnable interface • Running multiple threads in java • Retrieving thread information • Thread Name • Thread Priority • Thread Group • Changing Thread Name and Priority • Running multiple threads with different tasks • Getting the reference of currently running thread • Thread states • Born • Ready • Running • Sleep • Dead • Wait • Interrupted • Creating Daemon threads • Running and Stopping daemon threads • Class Exercises for Multithreading in Windows Forms
Java Language (java.lang) and Java Utility (java.util) Packages • Introduction to Java Language Package (java.lang) • Working with Object class • Overriding methods of Object class • Overriding equals method in Custom class • Overriding toString method in Custom class • Using getClass and hashCode method of Object class • Working with Math class • Using Math class methods • min and max methods • avg, abs and round methods • ceil and floor methods • random method • Overview of Java Language Wrapper classes • Byte, Short, Integer and Long classes • Float and Double classes • Boolean class • Character class • Using StringBuffer class • Difference between String and StringBuffer class • Introduction to Java Utility Package (java.util) • Working with Date class • Working with Calendar class • Using GregorianCalendar class • Using Random class
Java Language (java.lang) and Java Utility (java.util) Packages • Introduction to Collections Framework • Collection Framework Interfaces • Collection interface • List interface • Set interface • SortedSet interface • Map interface • SortedMap interface • Collection Framework Classes • HashSet class • TreeSet class • ArrayList class • Vector class • LinkedList class • HashMap class • TreeMap class • Creating Custom Collections in Java
• Introduction to Java I/O Package (java.io) • Introduction to Streams • Types of Streams in Java • Byte Oriented Stream • Character Oriented Stream • Byte Stream classes • InputStream class • OutputStream class • Character Stream classes • Reader class • Writer class • Predefined Java Streams • Input Stream (System.in) • Output Stream (System.out) • Error Stream (System.err) • Reading console input • using InputStreamReader class • using BufferedReader class • Reading String from console • Writing Console output • using System.out stream • using PrintWriter class • File class • Checking File Information from Disk • Creating files and directories on Disk • Scanning Files in Folders on Disk • Reading file contents with FileReader class • Writing file contents with FileWriter class • Java Serialization • Using ObjectInputStream class • Using ObjectOutputStream class