The Java Language fundamentals
Java program implementation, JVM
Data types, variables, constants, i/o
Decision making, looping and branching

Classes, Objects and Methods
Class definition
Adding variables to a class
Creating objects
Accessing members using object
Adding methods
Constructor: Constructor overloading
The ‘this’ keyword
Methods overloading
Static Members
Argument passing to methods
Methods returning objects
Recursion
Nested and inner classes

Inheritance
Abstract class and methods
Final class and methods
Dynamic method dispatch
The ‘super’ keyword
The object class: use and implementation
Visibility controls: public, private, protected, default

Arrays: use and implementation
String: use and implementation
Wrapper Classes: all class representations

Command Lines arguments

Packages: creation, importing, static import

Interfaces: creating, using, inheriting

Exceptions: try, catch, finally, throw, throws
Creating your own exceptions

Multithreading,
Java thread model, the main thread
Implementing Runnable interfaces
Inheriting the thread class
Creating multiple threads
Thread synchronization

Stream I/O: The file class
File operations: File Input and output streams

JDBC
DB Connectivity Steps with MySQL
DriverManager, Connection, Statement
ResultSet, PreparedStatement
Retriving and displaying the data from database

Enumerations, Autoboxing and Annotations
Enumerations fundamentals
Methods of the enumerations
Type wrappers
Autoboxing and methods
Autoboxing and unboxing in expressions
Annotations (metadata)
Retention policy
The AnnotedElement Interface
Marker annotations
Single-member annotations
The built-in annotations

Generics
Generic class with two type parameters
Bounded types
Using wildcard arguments
Creating generic methods
Generic interfaces
Generic class hierarchies

Collections overview
The collection interfaces- Collection, Set, List, Queue, DQueue
The collection classes- ArrayList, LinkedList, HashSet, TreeSet
Iterator interface
The Map Interface