Welcome to my Java learning repository! This project serves as a comprehensive, lesson-by-lesson documentation of my path to mastering Java. Inspired by standard educational pathways and built from scratch, this repository contains structured code examples, interactive notes, and implementation screenshots.
Each lesson below is structured as a dedicated directory containing:
- 📝
README.md- Concept explanations, theory, and references. - 💻
*.java- Well-documented source code files. - 📸
output.png- Screenshots demonstrating terminal execution.
| 📂 Directory / Lesson | 🔑 Core Topics Covered |
|---|---|
| 🌟 PART 1: CORE FUNDAMENTALS | |
📁 L01_Java_Introduction_and_Setup |
Java Intro, Java Get Started (JDK Setup & IDE Configuration) |
📁 L02_Java_Syntax_and_Output |
Java Syntax, Java Output (System.out Methods), Java Comments |
📁 L03_Variables_and_Data_Types |
Java Variables, Data Types, Primitive vs Reference Types, Type Casting |
📁 L04_Operators_and_Math |
Java Operators, Java Math Class, Essential Math Methods |
📁 L05_Working_with_Strings |
Java Strings, String Manipulation, Essential String Methods |
📁 L06_Booleans_and_Decision_Making |
Java Booleans, Conditional Statements (If...Else, Switch) |
📁 L07_Loops_and_Control_Statements |
While Loop, For Loop, Flow Control (Break & Continue) |
📁 L08_Arrays |
Single/Multi-dimensional Arrays, Essential Arrays Methods |
| ⚡ PART 2: METHODS & FUNCTIONAL JAVA | |
📁 L09_Java_Methods |
Declaring Methods, Parameters, Method Overloading |
📁 L10_Scope_and_Recursion |
Variable Scope (Block, Method, Class), Advanced Recursion Concepts |
📁 L11_Methods_Challenge_and_Debugging |
Method Challenges, Common Errors (Syntax, Runtime), Java Debugging |
| 🧩 PART 3: OBJECT-ORIENTED PROGRAMMING (OOP) | |
📁 L12_OOP_Basics_Classes_and_Objects |
OOP Paradigms, Classes/Objects, Class Attributes & Methods |
📁 L13_Constructors_and_this_Keyword |
Java Constructors, the this Keyword, OOP Challenge |
📁 L14_Modifiers_and_Encapsulation |
Access/Non-Access Modifiers, Encapsulation, Getters/Setters, Packages/API |
📁 L15_Inheritance_and_super_Keyword |
Subclasses, Superclasses, Method Overriding, super Keyword |
📁 L16_Polymorphism_and_Inner_Classes |
Runtime Polymorphism, Nested and Inner Classes |
📁 L17_Abstraction_and_Interfaces |
Abstract Classes, Interfaces, Anonymous Inner Classes |
📁 L18_Java_Enums |
Enum Types, Enums in Switch, Iterating over Enums |
| 🛠️ PART 4: INPUTS, DATES & EXCEPTION HANDLING | |
📁 L19_User_Inputs_and_Dates |
Java Scanner Class, Standard Keyboard Input, Java Date & Time API |
📁 L20_Exception_Handling |
Try...Catch blocks, Multiple Exceptions, try-with-resources, Throw/Throws |
| 📦 PART 5: DATA STRUCTURES & JAVA COLLECTIONS | |
📁 L21_Java_Collections_and_Wrapper_Classes |
Collections Overview, Iterator Interface, Wrapper Classes |
📁 L22_Lists_ArrayList_and_LinkedList |
ArrayList vs LinkedList, List Sorting, Collections Class Methods |
📁 L23_Sets_HashSet_TreeSet_LinkedHashSet |
Uniqueness in Set, HashSet, LinkedHashSet, TreeSet (Sorted Set) |
📁 L24_Maps_HashMap_TreeMap_LinkedHashMap |
Key-Value pairs, HashMap, LinkedHashMap, TreeMap, Map Methods |
📁 L25_Java_Algorithms_and_Collections_Methods |
Sorting, Searching, Shuffling, and Custom Comparator Algorithms |
| 💾 PART 6: FILE HANDLING & STREAM I/O | |
📁 L26_File_Handling |
Java File Class, Create, Read, Write, and Delete files safely |
📁 L27_Java_IO_Streams |
FileInputStream, FileOutputStream, BufferedReader, BufferedWriter |
| 🔥 PART 7: ADVANCED CONCEPTS | |
📁 L28_Generics_and_Annotations |
Generic Classes, Generic Methods, Custom Metadata Annotations |
📁 L29_RegEx_and_String_Manipulation |
Regular Expressions, Pattern Matching, Custom Validations |
📁 L30_Multithreading |
Concurrency, Thread Creation, Runnable Interface, Synchronization |
📁 L31_Lambda_Expressions |
Functional Interfaces, Lambdas syntax, Stream API processing |
📁 L32_Advanced_Sorting |
Comparable vs Comparator, sorting complex entities |
| 📚 PART 8: REFERENCES & PROJECTS | |
📁 L33_Java_Keywords_and_System_Methods |
Cheat Sheets, Reserved Keywords reference, System Class utilities |
📁 L34_Mini_Projects_and_How_Tos |
Real-world Mini Projects, Practical Code How-To implementations |
📁 L35_Certification_Prep_Notes |
Pre-assessment mocks, Certification reference study materials |
- JDK Version: Oracle OpenJDK 21 or higher
- IDE: IntelliJ IDEA / VS Code
- Build System: Gradle / Bare Compiler
- Operating System: Windows / Linux / macOS
Copyright © 2026 Sahan Udara. All rights reserved.
This repository, its custom notes, source code structures, and related visual assets are the original creations of Sahan Udara. Feel free to use the code for educational purposes, study along, or fork the repository for personal study references.
Made with ☕ and Determination by Sahan Udara