A comprehensive Java learning repository covering core fundamentals to advanced concepts including OOP, Collections, Exception Handling, Design Principles, and Data Structures & Algorithms (DSA).
Includes practical code examples and problem-solving exercises to support interview preparation and real-world development.
- About the Repository
- Topics Covered
- Getting Started
- Repository Structure
- How to Use This Repository
- Contribution Guidelines
- License
This repository is intended for students, beginners, and professionals who want to learn Java step by step and develop strong programming and problem-solving skills.
The folders are organized in a logical learning order — starting from basic Java syntax to advanced DSA patterns and interview-focused problem sets.
- Java Fundamentals (syntax, variables, data types, control flow, operators, methods)
- Object-Oriented Programming (classes, objects, inheritance, polymorphism, abstraction, encapsulation)
- Collections Framework (List, Set, Map, Queue)
- Exception Handling
- Advanced Java (generics, streams, lambdas, multithreading)
- SOLID Principles & Other Design Principles
- Data Structures (arrays, linked lists, stacks, queues, trees, graphs)
- Algorithms (sorting, searching, dynamic programming, greedy techniques)
- LeetCode & competitive programming problems
- DSA problem-solving patterns
- Java JDK 8 or above
- IDE such as IntelliJ IDEA / Eclipse / VS Code
- Git (optional but recommended)
git clone https://github.com/N-MohammedShakeel/Java_Bootcamp.git
cd Java_BootcampJava_Bootcamp/
├── JavaBasics/
├── JavaBasics_Advance/
├── OOPs/
├── Collections/
├── ExceptionHandling/
├── Advanced_Java/
├── SOLID_Principle/
├── Other_DesignPrinciples/
├── DSA/
├── DSA_Patterns/
└── Leetcode/
- Beginners should start with
JavaBasicsandOOPs - Move to
CollectionsandAdvanced_Javafor intermediate mastery - Use the
SOLID_PrincipleandOther_DesignPrinciplesfolders to understand clean architecture - For interview preparation, move to
DSA,DSA_Patterns, andLeetcode - Modify and run programs for better understanding — hands-on learning is highly encouraged
Contributions are welcome. You may contribute by:
- Adding examples for existing topics
- Adding new topics/modules
- Improving code readability or structure
- Providing documentation or explanations
Before submitting pull requests:
- Ensure code is formatted and commented properly
- Confirm that folder structure remains consistent
- Add only relevant and beginner-friendly files (no unnecessary binaries or temporary files)
This project is licensed under the MIT License. See the LICENSE file for more details.
Keep learning and improving your Java skills. Happy coding 🙂