Welcome to the Java Knowledge Base! This repository is a structured educational resource and reference vault documenting core Java programming concepts, from basic syntax up to multi-threaded concurrency, object-oriented design patterns, and interactive mini-projects.
It is structured to serve dual roles:
- IntelliJ Developer Workspace: Highly organized under the unified root namespace
javakb. - Obsidian Knowledge Vault: Direct integration with concept notes organized separately inside the
docs/folder, linking directly to source codes.
graph TD
A[Core Basics: Var, Math, Input] --> B[Control Flow & Loops]
B --> C[Methods & Arrays]
C --> D[Object-Oriented Programming OOP]
D --> E[Inheritance, Abstraction & Polymorphism]
E --> F[Encapsulation & Relationships]
F --> G[Collections, Wrappers & Exceptions]
G --> H[Advanced Basics: Generics, Concurrency, Files]
H --> I[DSA & Design Patterns]
I --> J[Spring Boot Prep]
- Phase 1: Procedural Fundamentals (Chapters 01 - 06)
- [๐] Phase 2: Object-Oriented Programming (Chapters 07 - 11 โ OOP Basics Started)
- [๐] Phase 3: Core API & Ecosystem (Chapters 12 - 16 โ Collections Framework Active)
- [๐] Phase 4: Advanced Java Mechanics & Projects (Beginner & Intermediate Projects Built)
- [๐] Phase 5: Data Structures & Algorithms (Complexity Analysis & Core DSA Completed)
- Phase 6: Object-Oriented Design Patterns (Creational, Structural, Behavioral)
All documentation is stored inside the docs/ folder to keep the source tree clean. Use the links below to navigate between conceptual documentation and IntelliJ-runnable code.
๐ Browse folders: All Java Notes | All Java Source Code
| Chapter | Topic | Concept Notes | Code Folder | Status |
|---|---|---|---|---|
| ch01 | Java Basics (Syntax, Printf, Input) | Notes | Code | [x] |
| ch02 | Control Flow (If-Else, Switch) | Notes | Code | [x] |
| ch03 | Loops (While, For, Nested) | Notes | Code | [x] |
| ch04 | Methods (Scope, Overloading, Varargs) | Notes | Code | [x] |
| ch05 | Arrays (1D, 2D, Linear Search) | Notes | Code | [x] |
| ch06 | Strings (Manipulation, Builders) | Notes | Code | [x] |
| ch07 | Object-Oriented Basics (Classes, Statics) | Notes | Code | [x] |
| ch08 | Inheritance (Subclassing, Super, Overrides) | Notes | Code | [ ] |
| ch09 | Abstraction (Interfaces, Polymorphism) | Notes | Code | [ ] |
| ch10 | Encapsulation (Accessors, Data Hiding) | Notes | Code | [ ] |
| ch11 | Object Relationships (Aggregation, Comp) | Notes | Code | [ ] |
| ch12 | Collections Framework (Lists, Maps, Sets) | Notes | Code | [๐] |
| ch13 | Exception Handling (Try-Catch, Custom) | Notes | Code | [ ] |
| ch14 | File Handling (Streams, Reader/Writer) | Notes | Code | [ ] |
| ch15 | Generics (Type safety, Bounds) | Notes | Code | [ ] |
| ch16 | Date & Time API (Modern Time APIs) | Notes | Code | [ ] |
| ch17 | Concurrency (Threads, Executors) | Notes | Code | [ ] |
Hands-on console applications categorized by complexity:
๐ Browse folder: Projects Source Code | Intermediate Projects README
| Level | Project | Description | Code Link | Specs Link |
|---|---|---|---|---|
| Beginner | ๐ฐ Compound Interest Calculator | Computes compound interest based on standard principal and rate user inputs. | Code | Doc Notes |
| Beginner | ๐งฎ Console Calculator | Multi-function CLI calculator utilizing static methods and varargs. | Code | Doc Notes |
| Beginner | ๐ Student Marks Analyzer | Array statistics analyzer (total, average, max, min, pass/fail thresholds). | Code | Doc Notes |
| Intermediate | ๐ Student Management System | Full CRUD student management application built with ArrayList, custom sorting (Name/GPA), and reversed views. |
Code | Project README |
| Intermediate | ๐๏ธ Apex Banking System | Full console banking application with constructor chaining, static vault tracking, inter-account transfers, and interest engines. | Code | Project README |
| Intermediate | ๐ Console Vending Machine | Retail vending machine simulation with inventory tracking, payment validation, and change calculation. | Code | Doc Notes |
| Intermediate | ๐ฆ Inventory Management System | Multi-array inventory tracking application with low-stock alert monitoring. | Code | Doc Notes |
| Intermediate | ๐ค Text Analyzer Project | Text metrics analyzer with word/character counts, vowel breakdown, and palindrome validation. | Code | Doc Notes |
| Advanced | Placeholder | Future multi-threaded file storage & concurrency applications | Code | Doc Notes |
๐ Browse folder: All DSA Notes
Detailed analysis and implementations of Data Structures and Algorithms:
| Topic | Notes Link | Status |
|---|---|---|
| Space-Time Complexity | Time & Space Complexity | [x] |
| Recursive Space-Time Complexity | Recursive Time & Space Complexity | [x] |
๐ง In Progress: More Data Structures (Arrays, Linked Lists, Trees, Graphs) and Algorithmic paradigms are currently under development.
๐ Browse folder: Design Patterns Folder
Object-Oriented Design Patterns and their clean implementations in Java:
๐ง In Progress: Notes and Java examples for Creational, Structural, and Behavioral patterns are in planning and development.
This project is optimized to be used as an Obsidian Knowledge Vault. To set up the vault locally:
- Download Obsidian: Download and install Obsidian from obsidian.md (free, cross-platform).
- Open Vault: Launch Obsidian, select "Open folder as vault", and choose the docs/ directory specifically (do not select the repository root folder).
- Why only
docs/? This ensures Obsidian only indexes the markdown concept notes and ignores raw Java source code or build folders. Notes can still link to code folder paths relatively (../../src/), but your Obsidian vault environment remains clean and focused solely on note-taking.
- Why only
- Core Plugins Recommended:
- Graph View: Turn this on to visualize how different Java chapters, DSA concepts, and projects connect with each other.
- Outline / Bookmarks: Helpful for navigating long concept sheets.
- Tags Pane: Displays properties and tags configured across notes.
Note: All files are standard GitHub-Flavored Markdown. Relative links and formatting will render correctly directly on GitHub, but features like interactive graphs and visual canvas boards are best experienced inside Obsidian.
To run the examples in this repository using IntelliJ IDEA:
- Import the root
java-knowledge-basefolder into IntelliJ. - Mark the
srcfolder as the Sources Root (Right-clicksrc$\rightarrow$ Mark Directory As$\rightarrow$ Sources Root). - If packages show errors, run a project build/reindex (Build
$\rightarrow$ Rebuild Project).
Because the code uses the base namespace package javakb, compile and run from the root folder:
# Compile a chapter file
javac -d out -sourcepath src src/javakb/ch07_oop/ClassesAndObjects.java
# Run the compiled file
java -cp out javakb.ch07_oop.ClassesAndObjectsThis repository is built to scale into these domains, combining ongoing expansions and planned modules:
- DSA (docs/dsa/): Expanding from complexity analysis into core Data Structures (Arrays, LinkedLists, Trees, Graphs) & Algorithmic paradigms.
- Design Patterns (docs/design_patterns/): Documenting Creational, Structural, and Behavioral patterns (structure initiated).
- Advanced Java (
src/javakb/advanced_java/): Advanced stream APIs, Lambdas, JVM profiling. - JDBC (
src/javakb/jdbc/): Database integration patterns. - Spring Boot (docs/spring_boot/): REST API creation and enterprise configurations.
Harsh Wardhan
- GitHub: @harshwardhan1507
- Focus: Core Java โข Software Architecture โข DSA