This repository is a comprehensive Java study and interview preparation playground.
It covers fundamental concepts, com.playground.advanced topics, design patterns, com.playground.concurrency, and Joshua Bloch’s Effective Java best practices.
- Master Software Engineering Fundamentals
- Build strong foundations in Core Java
- Learn Effective Java best practices
- Practice Advanced Java topics
- Prepare for technical interviews
- Provide ready-to-use Java code snippets for reference
- Sorting (BubbleSort, MergeSort, QuickSort, etc.)
- Searching (Binary Search, Linear Search)
- Dynamic Programming (Fibonacci, Knapsack)
- Graph Algorithms (DFS, BFS, Dijkstra)
- Arrays, LinkedList, Stack, Queue
- HashMap, HashSet
- Trees (Binary Tree, BST, Trie)
- Graphs
- Encapsulation, Inheritance, Polymorphism, Abstraction
- SOLID Principles
- Clean Code Examples
- Creational: Singleton, Builder, Factory
- Structural: Adapter, Decorator, Proxy
- Behavioral: Strategy, Observer, Command
- Collections Framework
- Streams API
- Functional Interfaces & Lambdas
- Generics
- Exception Handling
- Threads and Synchronization
- ExecutorService & ForkJoin
- Locks and Semaphores
- CompletableFuture
- Virtual Threads (Java 21+)
- Reflection API
- Custom Annotations
- Java NIO2 (Files, WatchService)
- Java Modules (JPMS)
- GraalVM & Native Image
- Best practices from Effective Java, 3rd Edition
- Each Item has its own Java example
Clone the repo and explore each module:
git clone https://github.com/<your-username>/java-playground.git
cd java-playground