Week 1
• Introduction to Java; features of Java
• Comparison with C and C++
• JDK/JRE
• The JDK Directory Structure
• Java Program through command prompt
• Java Program through IDE
• War and Jar
• Primitive Datatypes, Declarations, Ranges
• Variable Names Conventions
• Numeric Literals, Character Literals
• String Literals
• Arrays(One dimensional; two- dimensional)
• Array of Object References
• Accessing arrays, manipulating arrays
• Enumerated Data Types
• Non-Primitive Datatypes
• class, variable and method in Java
• Method Signature; method calls
• Expressions in Java; introduction to various operators
• Assignment Operator
• Arithmetic Operators
• Relational Operators
• Logical Operators
• Conditional Operators
• Operator Precedence
• Implicit Type Conversions
• Upcasting and downcasting
• Strict typing
• Type conversion
• if, if-else, if-else-if
• switch case
• for statement (both traditional and enhanced for)
• while and do-while loops
• continue Statement
• break Statement
• return statement
Week 2
• Classes and Objects
• Defining a class;Defining instance variables and methods
• Creating objects out of a class
• Method calls via object references
• Abstraction
• Interfaces and Abstract classes
• Abstract and non-abstract methods
• Inheritance
• extends and implements keywords in Java
• Super class and Sub class
• this keyword, super keyword in Java for inheritance
• Concrete classes in Java
• Polymorphism
• Compile time polymorphism -- Overloading of methods
• Run time polymorphism -- Overriding of methods
• Method Overriding rules and method overloading rules
• Introduction to Object class and it's methods
• Encapsulation
• Protection of data
• Java Bean, POJO
• Getters/Setters
• Memory management in Java
• Heap
• Stack
• Need for packages
• What are packages; package declaration in Java
• Import statement in Java
• How do packages resolve name clashes?
• Var-Args
• Reference variables, local variables, instance variables
• Memory allocations to variables
• Double equals operator(==) operator for primitives and objects
• toString() method on an object
• Static variables and methods
• Static imports
• Static initialization blocks; instance intialization blocks
• Static concept in inheritance
Week 3
• Constructors
• Properties of Constructors
• Default and Parameterized Constructors
• Rules for constructor implementation
• Constructor Chaining
• this call; super call for constructors
• Constructors for Enumerated Data Types
• Constructors concept for Abstract classes and interfaces
• What are Exceptions?
• Need for exceptions
• How can Exceptions be coded in Java?
• API heirarchy for Exceptions
• Types of Exceptions
• Keywords in Exception API: try, catch, finally, throw, throws
• Rules for coding Exceptions
• Declaring Exceptions
• Defining and Throwing Exceptions
• Errors and Runtime Exceptions
• Custom Exception
• Assertions
• Enabling and disabling assertions in development environment
• Strings
• String heap memory and Constant Pool memory
• Immutability in Strings
• String creation on heap and constant pool
• Method APIs on String; operations on Strings
• Mutability of String Objects - StringBuilder and StringBuffer
• Splitting of Strings and StringTokenizer class
• The Collections Framework
• The Set Interface
• Set Implementation Classes
• The List Interface
• List Implementation Classes
• The Map Interface
• Map Implementation Classes
• Queue Interface
• Queue Implmentation classes
Week 4
• Utility classes
• Sorting collections using utility methods
• equals() and hashCode contract in Java collections
• overriding equals and hashCode methods in Java
• New Collections added in Java 1.6
• Primitive wrapper classes and all its method APIs
• Generics for Collections
• Generics for class
• Generics for methods
• Regex
• What is a stream? and Overview of Streams
• Bytes vs. Characters
• Overview of the entire Java IO API
• Reading a file; writing to a file usinf various APIs
• Reading User input from console
• PrintWriter Class
• Object Serialization
• Serializable Interface
• Serialization API
• ObjectInputStream and ObjectOutput
• Transient Fields
• readObject and writeObject
• Inner Classes
• Member Classes
• Local Classes
• Anonymous Classes
• Static Nested Classes
• Non-Threaded Applications
• Threaded Applications
• Process based multitasking Vs Thread based multitasking
• Thread API in Java
• Creating Threads
• States of a Thread
• Sychronization for threads; static and non-static synchronized methods; blocks; concept of object and class locks
• Coordination between threads - wait, notify and notifyAll methods for inter-thread communication
*END