This repository is dedicated to practicing Java on a regular basis.
It contains beginner-level Java programs written while learning and strengthening core concepts of the Java programming language.
The goal of this repository is consistent practice and skill growth, so commits may be frequent and incremental, reflecting my learning progress.
Covers the foundational building blocks of Java programming, including program structure (Hello World!), variables, data types, operators, conditional (if-else, switch), Loops (for, while, do-while), Arrays (1D and 2D), and string handling.
Focuses on core object-oriented programming (OOP) principles such as classes and objects, inheritance, polymorphism, encapsulation, and abstraction, along with essential Java keywords (this, super, static), access modifiers, and wrapper classes.
Introduces intermediate-level concepts including exception handling (try-catch, throws, custom exceptions), interfaces, abstract classes, collections framework (List, Set, Map), generics, enums, and inner classes to build robust and reusable applications.
Explores advanced Java topics such as file handling using IO and NIO, multithreading and concurrency (Thread, Runnable, Synchronization, Executors), Java 8 features (Lambdas, Streams, Optional), Date and Time API, serialization, and JVM internals.
Java-Learning-Roadmap/
│
├── 01-Basics/
│ ├── HelloWorld.java
│ ├── Variables.java
│ ├── DataTypes.java
│ ├── Operators.java
│ ├── Conditionals/
│ │ ├── IfElse.java
│ │ └── SwitchCase.java
│ ├── Loops/
│ │ ├── ForLoop.java
│ │ ├── WhileLoop.java
│ │ └── DoWhileLoop.java
│ ├── Arrays/
│ │ ├── OneDArray.java
│ │ └── TwoDArray.java
│ └── Strings/
│ └── StringMethods.java
│
├── 02-Core-Java/
│ ├── OOP/
│ │ ├── ClassAndObject.java
│ │ ├── Constructor.java
│ │ ├── Inheritance.java
│ │ ├── Polymorphism.java
│ │ ├── Encapsulation.java
│ │ └── Abstraction.java
│ ├── Keywords/
│ │ ├── ThisKeyword.java
│ │ ├── SuperKeyword.java
│ │ └── StaticKeyword.java
│ ├── AccessModifiers/
│ └── WrapperClasses.java
│
├── 03-Intermediate-Java/
│ ├── ExceptionHandling/
│ │ ├── TryCatch.java
│ │ ├── CustomException.java
│ │ └── ThrowsKeyword.java
│ ├── Interfaces/
│ ├── AbstractClasses/
│ ├── Collections/
│ │ ├── List/
│ │ ├── Set/
│ │ └── Map/
│ ├── Generics/
│ ├── Enums/
│ └── InnerClasses/
│
└── 04-Advanced-Java/
├── FileHandling/
│ ├── FileIO.java
│ └── NIOExample.java
├── Multithreading/
│ ├── ThreadClass.java
│ ├── RunnableInterface.java
│ ├── Synchronization.java
│ └── ExecutorFramework.java
├── Java8Features/
│ ├── LambdaExpressions.java
│ ├── StreamsAPI.java
│ ├── FunctionalInterfaces.java
│ └── OptionalClass.java
├── DateTimeAPI/
├── Serialization/
└── JVM-Internals/