Introduction - Object Oriented Programming and concepts, Java language and its features, JDK, JRE and JVM, Basic Programming Constructs - Charset, identifiers, data types, variables, constants, literals operators, decision making statements (if, switch), iterative statements (while, do, for and for-each), jump statements (break, continue and return) and keywords, Classes and Objects, Data and methods members - Types of variables and their scope, Creating objects, Constructors, Overloading, Parameter passing in Java, this and static keywords, JVM and Garbage Collection - Java Virtual Machine and subsystems, Class loading and Execution Engine systems, Java runtime memory system,
Inheritance and Polymorphism - Visibility modifiers, extends and super keywords, Abstract classes, Run-time polymorphism, Interfaces, Inner classes, Anonymous inner classes, Packages and Wrapper Classes - Importing packaging, Defining custom packages, Wrapper classes, Modifiers in Java, Exception Handling - Introduction to exceptions – checked and unchecked, Java’s exception handling mechanism, Writing custom exceptions in Java, Arrays and Strings - Arrays, Strings, String constant pool, String comparison and methods, Stringbuffer and Stringbuilder classes, Command line arguments
IO Streams - Text Streams – Reader and Writer, Byte Streams – InputStream and OutputStream, File IO –Filereader and Filewriter , Processing Buffers, Ways of reading data from Keyboard, Multi-Threading- Concept of Thread and thread life cycle, Creating a thread, Thread class and its methods, Thread synchronization and inter thread communication
Java Collection Framework - Need of collections in Java, Key interfaces of Collection Framework – Collection, List, Set, Queue, Map, etc., Legacy and non-legacy collection classes, Iterators and Enumerator, Utility classes – Collections and Arrays, Exploring java.util package – Date, Calendar, Scanner etc. Generic Programming in Java, Introduction, Writing a Generic Class, Passing Objects of a Generic Class to a Method, Writing Generic Methods, Constraining a Type Parameter in a Generic Class, Use of wildcards – upper and lower bounds, , Secure Coding in Java, SEI CERT Java coding standard, Design Patterns in Java