A comprehensive collection of Java programs covering Object-Oriented Programming concepts and Data Structures & Algorithms, organized by topic for easy navigation and learning.
JavaProjects/
│
├── 📂 ArrayList
├── 📂 ArrayProblems
├── 📂 BitwiseOperatorsInJava
├── 📂 CharacterMethodsInJava
├── 📂 DataStructureAndAlgorithm
├── 📂 FactorialCalculator
├── 📂 FibonacciCalculator
├── 📂 FileHandling
├── 📂 FindingRootsOfEquation
├── 📂 FindingSystemTime
├── 📂 Function
├── 📂 GeneratingRandomNumbers
├── 📂 GPACalculator
├── 📂 GradeBookClass
├── 📂 JavaDateTimeAPI
├── 📂 LeetCodeProblems
├── 📂 MaximumAndMinimumFinder
├── 📂 MiscellaneousProblem
├── 📂 MultiThreadingInJava
├── 📂 RecursionProblems
├── 📂 RegularExpressionInJava
├── 📂 SearchingAlgorithm
├── 📂 SortingAlgorithm
├── 📂 StringsInJava
└── 📂 TCP&SMTPClientAndServer
| Folder | Description |
|---|---|
GradeBookClass |
Class design, constructors, methods, and encapsulation |
GPACalculator |
OOP-based GPA computation using classes and objects |
Function |
Method overloading, return types, and parameters |
GeneratingRandomNumbers |
Utility class usage and Java standard library |
FileHandling |
File I/O using FileReader, FileWriter, BufferedReader |
MultiThreadingInJava |
Threads, Runnable, synchronized, and concurrency |
RegularExpressionInJava |
Pattern matching using java.util.regex |
JavaDateTimeAPI |
LocalDate, LocalTime, DateTimeFormatter |
TCP&SMTPClientAndServer |
Socket programming, networking with Java |
CharacterMethodsInJava |
Character class utility methods |
StringsInJava |
String manipulation, StringBuilder, common methods |
BitwiseOperatorsInJava |
Bitwise AND, OR, XOR, shift operators |
| Folder | Description |
|---|---|
DataStructureAndAlgorithm |
Core DSA concepts and implementations |
ArrayList |
Dynamic arrays using java.util.ArrayList |
ArrayProblems |
Array-based problem solving |
SortingAlgorithm |
Bubble, Selection, Insertion, Merge, Quick Sort |
SearchingAlgorithm |
Linear Search, Binary Search |
RecursionProblems |
Recursive thinking and problem solving |
LeetCodeProblems |
Competitive programming practice problems |
MaximumAndMinimumFinder |
Array traversal and comparison logic |
FactorialCalculator |
Iterative and recursive factorial |
FibonacciCalculator |
Fibonacci with loops and recursion |
FindingRootsOfEquation |
Numerical methods (Bisection, Newton-Raphson) |
FindingSystemTime |
Benchmarking algorithms using system time |
MiscellaneousProblem |
Mixed logic and problem-solving exercises |
- Java JDK 17 or above
- Any IDE: IntelliJ IDEA, Eclipse, or VS Code with Java Extension
Using Terminal / CMD:
# Navigate to any folder
cd SortingAlgorithm
# Compile the Java file
javac Main.java
# Run the program
java MainUsing IntelliJ IDEA:
- Open the project folder
- Right-click any
.javafile - Click Run
- ✅ Encapsulation — Private fields with getters/setters
- ✅ Inheritance — Parent-child class relationships
- ✅ Polymorphism — Method overloading & overriding
- ✅ Abstraction — Abstract classes and interfaces
- ✅ Arrays & ArrayLists
- ✅ Recursion & Backtracking
- ✅ Sorting — Bubble, Merge, Quick, Selection, Insertion
- ✅ Searching — Linear, Binary
- ✅ String Manipulation
- ✅ Bit Manipulation
- ✅ File I/O
- ✅ Multithreading
- ✅ Networking (TCP/SMTP)
Beginner → Intermediate → Advanced
─────────────────────────────────────────────────────────
Variables OOP Concepts Multithreading
Arrays Recursion Networking
Strings Sorting & Searching LeetCode Problems
Functions File Handling DSA Deep Dive
Feel free to fork this repository, add new problems or improve existing solutions, and submit a pull request!
Muhammad Abdullah
This project is open-source and available for educational purposes.
"The only way to learn programming is to write programs." — Dennis Ritchie