Skip to content

OmkarAKadam/java-backend-foundations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Java Backend Foundations

This repository tracks my learning of Java for backend development, progressing towards Spring Boot, microservices, and scalable systems.


πŸ“Œ Objective

  • Build strong core Java fundamentals
  • Write clean, structured, and logical code
  • Prepare for backend development using Spring Boot

πŸ“… Day 01 – Java Basics & Control Flow

Topics Covered

  • JDK setup and IntelliJ IDEA configuration
  • Java program structure and execution flow
  • Variables and data types
  • Literals and type conversion

Operators:

  • Arithmetic
  • Relational
  • Logical

Conditional Statements:

  • if-else
  • else-if
  • ternary operator
  • switch-case

Loops:

  • while
  • do-while
  • for loop
  • choosing the right loop

πŸ’» Practice Work

  • Implemented basic Java programs for each concept
  • Solved exercises on:
    • Operators
    • Conditionals (grading logic)
    • Loops
  • Built basic console logic (calculator-style program)

πŸ“‚ Folder Structure

  • day-01/
    • basics/
    • operators/
    • conditionals/
    • loops/

βš™οΈ Key Learnings

  • Understanding how Java code is compiled and executed
  • Writing clean and structured control flow logic
  • Choosing appropriate loops based on use-case

πŸ“… Day 02 – Arrays, Methods & Basic OOP

Topics Covered

Arrays:

  • 1D arrays
  • Multi-dimensional arrays
  • Jagged arrays
  • Array of objects
  • Enhanced for loop

Methods:

  • Method creation and usage
  • Method overloading

Memory Concepts:

  • Stack vs Heap

Classes & Objects:

  • Class structure
  • Object creation
  • Basic encapsulation

πŸ’» Practice Work

Array Problems:

  • Second largest element
  • Reverse array (in-place)
  • Check if array is sorted
  • Find duplicate elements
  • Rotate array

Methods:

  • Prime number checker
  • Factorial
  • Fibonacci
  • Find max element

Classes:

  • Student (average & grade calculation)
  • BankAccount (deposit & withdraw logic)
  • Book (price discount logic)

πŸ“‚ Folder Structure

  • day-02/
    • arrays/
    • methods/
    • classesAndObjects/
    • self-practice/

βš™οΈ Key Learnings

  • Applying array concepts to solve real problems
  • Writing reusable logic using methods
  • Understanding how objects encapsulate data and behavior
  • Identifying and correcting logical mistakes through practice


πŸ“… Day 03 – Strings & Core OOP Concepts

Topics Covered

Strings:

  • String creation and immutability
  • Mutable vs Immutable strings
  • StringBuffer and StringBuilder

OOP Concepts:

  • Encapsulation
  • Getters and setters
  • this keyword
  • Constructors (default and parameterized)

Static Concepts:

  • Static variables
  • Static methods
  • Static block

Misc:

  • Naming conventions
  • Anonymous objects

πŸ’» Practice Work

String Problems:

  • Reverse string
  • Palindrome check
  • Count vowels and consonants
  • Remove duplicate characters
  • Compare == vs .equals()

OOP Practice:

  • Encapsulation with validation (Student, BankAccount)
  • Constructor usage (Book, Employee)
  • Static keyword practice (Counter, utility class)
  • Demonstrated this keyword and anonymous objects

πŸ“‚ Folder Structure

  • day-03/
    • strings/
    • encapsulation/
    • constructors/
    • static/
    • misc/

βš™οΈ Key Learnings

  • Understanding string immutability and performance implications
  • Applying encapsulation for data protection and validation
  • Using constructors for proper object initialization
  • Understanding shared behavior using static members
  • Writing cleaner and more structured object-oriented code

πŸ“… Day 04 – Inheritance, Polymorphism & Advanced OOP

Topics Covered

Inheritance:

  • Need of inheritance
  • Single and multilevel inheritance
  • Multiple inheritance (conceptual in Java)

Core Concepts:

  • this and super keyword
  • Method overriding

Polymorphism:

  • Compile-time vs runtime polymorphism
  • Dynamic method dispatch

Java Structure:

  • Packages
  • Access modifiers

Advanced Concepts:

  • final keyword
  • Object class methods (equals, toString, hashCode)
  • Upcasting and downcasting
  • Wrapper classes

πŸ’» Practice Work

  • Completed quiz and coding exercises on OOP concepts
  • Understood inheritance hierarchy and method overriding
  • Explored polymorphism and dynamic method dispatch behavior
  • Practiced usage of access modifiers and package structure
  • Analyzed object comparison using equals and hashCode

πŸ“‚ Folder Structure

  • day-04/
    • inheritance/
    • polymorphism/
    • packages/
    • object-class/
    • misc/

βš™οΈ Key Learnings

  • Understanding code reuse through inheritance
  • Applying polymorphism for flexible and scalable design
  • Managing access and structure using packages and modifiers
  • Understanding object behavior through Object class methods
  • Gaining clarity on type casting and wrapper classes

πŸ“… Day 05 – Mini Project: Quiz Console Application

Topics Covered

  • Applying OOP concepts in a real use-case
  • Class design and object interaction
  • Arrays of objects
  • Basic input/output handling

πŸ’» Practice Work

Mini Project:

  • Built a console-based quiz application

Features:

  • Question class with encapsulated fields
  • QuizService to manage quiz flow
  • Display multiple-choice questions
  • Accept user input
  • Calculate and display final score

πŸ“‚ Folder Structure

  • day-05/
    • quiz-app/
      • Question.java
      • QuizService.java
      • QuizConsoleApp.java

βš™οΈ Key Learnings

  • Structuring a small application using multiple classes
  • Managing data using arrays of objects
  • Understanding flow control in real scenarios
  • Identifying design limitations (tight coupling, input handling)
  • Transitioning from concept-based coding to building small applications

πŸ” Discipline Rule

  • Code is written and pushed daily to maintain consistency and track progress

About

Structured learning and implementation of Java backend fundamentals including core Java, problem-solving, and preparation for Spring Boot and microservices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages