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.
Introduces the fundamentals of Java including program structure, Comments, variables, data types, type casting, constants, user input (Scanner), operators, conditionals, loops, methods (overloading and recursion), arrays, and comprehensive string handling. Also covers Math & Random utilities, command-line arguments, pattern printing, and basic problem-solving programs.
Covers object-oriented programming (OOP) concepts such as classes, objects, constructors, inheritance, polymorphism, encapsulation, abstraction, key Java keywords (this, super, static), access modifiers, and wrapper classes.
Includes exception handling, interfaces, abstract classes, Collections Framework (List, Set, Map), generics, enums, and inner classes for building modular applications.
Explores file handling (IO/NIO), multithreading and concurrency, Java 8 features (Lambdas, Streams, Optional), Date & Time API, serialization, and JVM internals.
Java-Fundamentals/
│
├── 01-Basics/
│ ├── HelloWorld.java
│ │
│ ├── Comments
│ │
│ ├── Variables.java
│ ├── DataTypes.java
│ │
│ ├── TypeCasting/
│ │ ├── ImplicitCasting.java
│ │ └── ExplicitCasting.java
│ │
│ ├── Constants/
│ │ └── FinalKeywordDemo.java
│ │
│ ├── Input/
│ │ ├── ScannerBasics.java
│ │ ├── TakingIntegerInput.java
│ │ ├── TakingMultipleInputs.java
│ │ └── InputValidation.java
│ │
│ ├── Operators.java
│ │
│ ├── Conditionals/
│ │ ├── IfElse.java
│ │ └── SwitchCase.java
│ │
│ ├── Loops/
│ │ ├── ForLoop.java
│ │ ├── WhileLoop.java
│ │ └── DoWhileLoop.java
│ │
│ ├── Methods/
│ │ ├── MethodDeclaration.java
│ │ ├── MethodParameters.java
│ │ ├── MethodReturnTypes.java
│ │ ├── MethodOverloadingIntro.java
│ │ └── RecursionIntro.java
│ │
│ ├── Arrays/
│ │ ├── OneDArray.java
│ │ ├── TwoDArray.java
│ │ ├── ArrayOperations.java
│ │ ├── ArrayMethods.java
│ │ └── PassingArray.java
│ │
│ ├── Strings/
│ │ ├── StringDeclaration.java
│ │ ├── StringInputOutput.java
│ │ ├── StringLengthAndCharAt.java
│ │ ├── StringComparison.java
│ │ ├── StringConcatenation.java
│ │ ├── StringSubstring.java
│ │ ├── StringSearching.java
│ │ ├── StringCaseConversion.java
│ │ ├── StringTrimAndReplace.java
│ │ ├── StringSplitAndJoin.java
│ │ ├── StringImmutabilityDemo.java
│ │ ├── StringBuilderDemo.java
│ │ ├── StringBufferDemo.java
│ │ ├── StringToNumberConversion.java
│ │ ├── NumberToStringConversion.java
│ │ ├── StringFormattingDemo.java
│ │ ├── StringRegexValidation.java
│ │ ├── StringPerformanceTest.java
│ │ │
│ │ ├── ReverseString.java
│ │ ├── PalindromeCheck.java
│ │ ├── CountVowels.java
│ │ ├── CountCharacterFrequency.java
│ │ ├── RemoveDuplicatesFromString.java
│ │ ├── AnagramCheck.java
│ │ ├── LongestSubstringWithoutRepeating.java
│ │ ├── StringCompression.java
│ │ ├── CapitalizeEachWord.java
│ │ └── RemoveWhiteSpaces.java
│ │
│ ├── MathAndRandom/
│ │ ├── MathClassDemo.java
│ │ └── RandomNumberGeneration.java
│ │
│ ├── CommandLineArguments/
│ │ └── CommandLineArgsDemo.java
│ │
│ ├── Patterns/
│ │ ├── StarPatterns.java
│ │ ├── NumberPatterns.java
│ │ └── PyramidPatterns.java
│ │
│ └── BasicPrograms/
│ ├── PrimeNumberCheck.java
│ ├── Factorial.java
│ ├── FibonacciSeries.java
│ ├── GCD_LCM.java
│ └── ArmstrongNumber.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/