Click Here to see full syllabus
A collection of resources that you might find helpful.
Click here
Our contribution guidelines have been changed. Please check it here before making any pull request.
| Emoji |
Meaning |
Mardown |
| ✔️ |
Done |
:heavy_check_mark: |
| ➖ |
N/A |
:heavy_minus_sign: |
| ❌ |
Not Done |
:x: |
| ⚠️ |
Review Needed |
:warning: |
| Section |
Topic |
Notes |
Video Resources |
Reading Resources |
Practice Resources |
| Java Overview |
➖ |
✔️ |
❌ |
✔️ |
❌ |
| Environmental Setup |
➖ |
✔️ |
✔️ |
❌ |
➖ |
| Introduction to Object Oriented Programming |
Object Oriented Paradigm |
✔️ |
✔️ |
✔️ |
❌ |
|
Abstraction |
✔️ |
✔️ |
✔️ |
✔️ |
|
Encapsulation |
✔️ |
✔️ |
✔️ |
❌ |
|
Inheritance |
✔️ |
✔️ |
✔️ |
❌ |
|
Polymorphism |
✔️ |
✔️ |
✔️ |
❌ |
| Data Types |
Primitive Types |
✔️ |
✔️ |
✔️ |
✔️ |
|
Arrays |
✔️ |
✔️ |
✔️ |
✔️ |
|
Strings |
✔️ |
✔️ |
✔️ |
✔️ |
|
Literals |
✔️ |
❌ |
❌ |
❌ |
| Variables |
What is Variable? |
✔️ |
❌ |
✔️ |
✔️ |
|
Scope and Liftime |
✔️ |
❌ |
✔️ |
✔️ |
|
Type Conversion and Casting |
✔️ |
✔️ |
❌ |
✔️ |
|
Automatic Type Promotion |
✔️ |
❌ |
❌ |
✔️ |
| Operators |
Arithmatic Operators |
✔️ |
✔️ |
❌ |
❌ |
|
Bitwise Operators |
✔️ |
❌ |
❌ |
❌ |
|
Relational Operators |
✔️ |
✔️ |
❌ |
❌ |
|
Boolean Logical Operator |
✔️ |
✔️ |
❌ |
❌ |
|
Ternary Operator |
✔️ |
✔️ |
❌ |
❌ |
|
Unary Operator |
✔️ |
❌ |
❌ |
❌ |
|
Assignment Operator |
✔️ |
✔️ |
❌ |
❌ |
| Control Statements |
'if' Statements |
✔️ |
✔️ |
✔️ |
✔️ |
|
switch |
✔️ |
✔️ |
✔️ |
❌ |
|
Loops |
✔️ |
✔️ |
✔️ |
✔️ |
|
Jump Statements |
✔️ |
❌ |
✔️ |
❌ |
| Classes and Objects |
Class Fundamentals |
✔️ |
✔️ |
✔️ |
❌ |
|
Objects and The 'new' Keyword |
✔️ |
✔️ |
✔️ |
❌ |
|
Methods |
✔️ |
✔️ |
✔️ |
❌ |
|
Constructors |
✔️ |
✔️ |
✔️ |
❌ |
|
Access Control |
✔️ |
❌ |
✔️ |
❌ |
| More on Classes |
'static' Keyword |
✔️ |
✔️ |
✔️ |
✔️ |
|
Nested or Inner Classes |
✔️ |
✔️ |
✔️ |
❌ |
|
'final' Keyword |
✔️ |
✔️ |
✔️ |
❌ |
| Inheritance |
Basics |
✔️ |
✔️ |
✔️ |
✔️ |
|
'super' Keyword |
✔️ |
❌ |
✔️ |
✔️ |
|
Multilevel Hierarchy |
✔️ |
❌ |
❌ |
✔️ |
|
Method Overriding |
✔️ |
✔️ |
✔️ |
✔️ |
|
Abstract Classes and More on 'final' Keyword |
✔️ |
✔️ |
✔️ |
✔️ |
|
The 'Object' Class |
✔️ |
❌ |
✔️ |
✔️ |
| Interfaces |
Introduction |
✔️ |
✔️ |
✔️ |
✔️ |
|
Nested Interfaces and Extending Interfaces |
✔️ |
❌ |
✔️ |
✔️ |
|
Variables and Methods in Interfaces |
✔️ |
❌ |
✔️ |
❌ |
| Packages |
Packages and CLASSPATH |
✔️ |
✔️ |
✔️ |
❌ |
|
'import' Keyword |
✔️ |
❌ |
✔️ |
❌ |
|
Access Control Revisited |
✔️ |
✔️ |
✔️ |
❌ |
| Exception Handling |
Exception Handling Fundamentals |
✔️ |
✔️ |
✔️ |
✔️ |
|
'try-catch' Block |
✔️ |
✔️ |
✔️ |
✔️ |
|
Nested try and Multiple catch Clauses |
✔️ |
✔️ |
✔️ |
✔️ |
|
'throw' and 'throws' Keyword |
✔️ |
✔️ |
✔️ |
✔️ |
|
'finally' Keyword |
✔️ |
✔️ |
❌ |
✔️ |
|
Built-in Exceptions and Custom Exceptions |
✔️ |
❌ |
✔️ |
✔️ |
|
Chained Exceptions and Other Features |
✔️ |
❌ |
✔️ |
✔️ |
| Multithreaded Programing |
Process and Threads |
✔️ |
✔️ |
✔️ |
✔️ |
|
Creating Threads |
✔️ |
✔️ |
✔️ |
✔️ |
|
Multiple Threads |
✔️ |
✔️ |
✔️ |
✔️ |
|
Thread Priorities |
✔️ |
❌ |
❌ |
❌ |
|
Synchronization |
✔️ |
❌ |
✔️ |
✔️ |
|
Interthread Communication |
✔️ |
❌ |
✔️ |
✔️ |
|
Deadlock |
✔️ |
❌ |
✔️ |
✔️ |
| Enumerations, Type Wrappers, Autoboxing and Annotations |
Enumerations |
✔️ |
✔️ |
✔️ |
❌ |
|
Type Wrappers and Autoboxing |
✔️ |
❌ |
✔️ |
❌ |
|
Annotations |
❌ |
❌ |
❌ |
❌ |
| Java I/O |
Streams |
✔️ |
❌ |
✔️ |
✔️ |
|
Reading Console Input |
✔️ |
❌ |
✔️ |
✔️ |
|
Writing to Console |
✔️ |
❌ |
✔️ |
✔️ |
|
Reading and Writing Files |
✔️ |
✔️ |
✔️ |
✔️ |
| Generics |
Generic Classes |
✔️ |
✔️ |
✔️ |
❌ |
|
Generic Methods, Constructors and Interfaces |
✔️ |
❌ |
✔️ |
❌ |
|
Wildcard Arguments |
✔️ |
✔️ |
✔️ |
❌ |
| Lambda Expressions |
Lambda Expression Fundamentals |
✔️ |
❌ |
✔️ |
❌ |
|
More Fundamental Concepts |
✔️ |
❌ |
✔️ |
❌ |
|
Method References |
✔️ |
❌ |
✔️ |
❌ |
| Java Collections |
➖ |
❌ |
❌ |
❌ |
❌ |