# Core Java - Course Contents
1 Introduction to Java
JDK /JRE - Language Features
Basics of Java Syntax
main() method syntax
Data types
Operators
Operator precendence
2 Control Statements
if-else - syntax and application
switch-case - syntax and application
for-each - syntax and application
for - syntax and application
while - syntax and application
do-while - syntax and application
When to use which loop
3 Arrays to Java
Fundamentals about Arrays
Array Access and Iterations
Multi-dimentional Arrays
Problem solving with Arrays
4 Object Oriented Programming - Part - 1
Class Fundamentals
Difference between types of Identifiers
Using Objects
Encapsulation
5 Text Processing
String Class
String Contatination
Text Processing methods
length(), indexOf(),substring(),charAt(),toLowerCase(),toUpperCase(),trim(),split()
6 Fundamental java.lang Classes
Numeric - Classes - Integer, Short, Float, Double, Long
Text/Number conversion methods
Byte and Boolean
Auto Boxing
Math class with its utility methods
7 Object Oriented Programming - Part - 2
Inheritance
Method Overloading
Method Overriding
Object Class Internals
Overiding toString() & equals() methods
Scope
8 Object Oriented Programming - Part - 3
Abstract Class and usages of abstract keyword
Understanding Interface
Using Interfaces
Polymorphism
Enums
9 Static Keyword and its usage
Non-Static Init Blocks
Static Init Blocks
Static fields
Static methods
Static classes
10 Nested Classes
Non-static Inner Classes
Static Inner Classes
Local Classes
Anonymous Inner Classses
11 Final Keyword and its usage
Final fields
Final methods
Final Classes
Common Errors with final usages
12 GC
Constructors and finalize method
Garbage Collection
Understanding the internals of String, StringBuilder Class
Understanding the Memory Implications/Overheads of String concatenation
13 System class Demystified
Understanding System Class
Truths about println method
Working with System Time in Milli and Nano seconds
System class internals
14 Data Structures - Part - 1
Fundamentals of DataStructures
Collection Hierarchy
Collection Root Interface
Introduction to Interfaces in collection framework(Set, List, Queue, Map)
Usages of Iterable & Iterator
15 Data Structures - Part - 2
Understanding internals of List interface
ArrayList - methods and usage
Vector and Stack
LinkedList
When to use Arrays and ArrayLists
16 Data Structures - Part - 3
Understanding HashCode
Understanding Map Interface
Internals of HashMap implementation
TreeMap
LinkedHashmap
17 Data Structures - Part - 4
Dictionay and Hashtable
Properties
18 Data Structures - Part - 5
Understanding Set interface
HashSet and its usages
TreeSet and its usages
LinkedHashSet and its usages
19 Utility Classes
Date, DateFormat, Calendar
Random-number-generator
Understanding Utility classes like
Understanding sort and search methods in Arrays, Collections
20 Generics - Part - 1
Introduction to Generics
Generics in Collections Framework
Correct Usage of Generics
21 Generics - Part - 2
Writing Custom Generic Class
Bounded Generics
Wild Card Generics
22 Exception Handling - Part - 1
Exception classes & their Hierarchy
Exception Types
Usage of try, catch and finally
try-with-resources
23 Exception Handling - Part - 2
Avoidable mistakes with try-catch-finally
Usage of throw, throws
Writing User defined Exceptions
24 Multi-Threading
Multitasking & Multiprocessing
Understanding Threads & its States
Thread Synchronization
Thread class, Runnable Interface
25 IO (Input/Output) - File Handling
File class and Path class
File Copying/Moving
IO hierarchy & their design
Byte Streams
Character Streams(Readers and Writers)
Filter Streams
StringWriter & ByteArrayOutputStream
Object Streams
26 Annotations
Introduction to Annotations
27 Assertions
Introduction to Assertions
The complete course includes extensive coding and practice exercises.

Additional reading material.