Skip to content

Skakarla2023/java-backend-mastery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

234 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Backend Mastery – Learning & Practice Repository

Overview

This repository is a structured, in-progress learning journal for mastering Java from core fundamentals to AI-powered backend engineering. It is being built incrementally, topic by topic, while learning and practicing.

The goal of this repository is to:

  • Build strong Java and Spring Boot foundations
  • Practice concepts with clear, minimal examples
  • Cover the full backend engineering stack — from OOP to RAG pipelines
  • Serve as a revision and interview-prep reference

This is not a finished project. Files are added gradually as concepts are learned and understood.


Repository Status

🚧 Work in Progress New files and examples are added continuously while learning and practicing.


Folder Structure & Learning Roadmap

01_Java_Basics
02_OOP
03_Core_APIs
04_Collections_And_Algorithms
05_Exceptions_And_Logging
06_File_And_IO
07_Concurrency_And_Threads
08_Java_Memory_And_JVM
09_Design_Patterns
10_Spring_Basics
11_Databases_And_JPA
12_Spring_REST_And_Security
13_Testing
14_Tools_And_Build
15_Interview_Questions
16_Java_Patterns
17_Spring_AI
18_LangChain4j_And_RAG

Each folder focuses on one major concept, with:

  • Small, focused examples
  • Clear class and method names
  • Practical scenarios instead of theory-only code

What Each Section Covers

01. Java Basics

  • Data types and operators
  • Control flow (if, switch, loops)
  • Methods and basic programs

02. Object-Oriented Programming (OOP)

  • Classes and objects
  • Encapsulation, Inheritance, Polymorphism
  • Abstraction and Interfaces

03. Core APIs

  • Generics — type-safe templates, bounded types, wildcards
  • Lambdas — functional interfaces, method references
  • Stream API — filter, map, reduce, collectors
  • String, Math, Objects, Wrapper classes
  • Utility classes

04. Collections and Algorithms

  • List, Set, Map, Queue and Deque implementations
  • Iteration techniques
  • Searching and sorting

05. Exceptions and Logging

  • Checked vs unchecked exceptions
  • Custom exceptions
  • Try-catch-finally
  • Basic logging concepts

06. File and IO

  • File handling
  • Byte and character streams
  • Buffered IO

07. Concurrency and Threads

  • Thread creation and lifecycle
  • Synchronization and deadlocks
  • ExecutorService and thread pools
  • CompletableFuture and async tasks
  • Producer-consumer pattern

08. Java Memory and JVM

  • Heap vs Stack
  • Garbage Collection
  • JVM architecture

09. Design Patterns

  • Singleton, Factory, Builder
  • Observer, Strategy

10. Spring Basics

  • Dependency Injection
  • Spring annotations and bean lifecycle
  • Application context

11. Databases and JPA

  • JDBC basics
  • JPA annotations and ORM concepts
  • Entity relationships (@OneToMany, @ManyToOne)
  • JpaRepository and custom queries

12. Spring REST and Security

  • @RestController and REST API design
  • Full CRUD API implementation
  • Global exception handling with @ControllerAdvice
  • Spring Security basics and filter chain
  • JWT authentication — register, login, token validation

13. Testing

  • JUnit basics
  • Mockito
  • Integration tests

14. Tools and Build

  • Maven and Gradle
  • Git workflow and project structure

15. Interview Questions

  • Java Core Q&A
  • OOP Q&A
  • Collections Q&A
  • Spring Q&A
  • Concurrency Q&A

16. Java Patterns

  • Star and number patterns
  • Logic and output-based problems

17. Spring AI

  • Setup and configuration (spring-ai-openai)
  • /chat endpoint with LLM integration
  • Prompt templates with dynamic variables
  • Embedding client
  • @AiService interface

18. LangChain4j and RAG

  • LangChain4j basics and @AiService
  • Conversation memory (ChatMemory)
  • Embeddings and pgvector setup
  • Document loading and chunking
  • Full RAG pipeline — /ask endpoint with vector retrieval

How This Repository Is Maintained

  • Files are added only after understanding the concept
  • Code is kept simple and readable
  • Emphasis on clarity over optimization
  • Refactoring happens as learning improves

How to Use This Repository

  • Browse folders topic-wise
  • Run individual classes directly
  • Use it for:
    • Revision
    • Interview preparation
    • Concept clarification

Contributions

This repository is primarily for personal learning.

However:

  • Suggestions
  • Documentation improvements
  • Code readability improvements

are welcome via Pull Requests.


Notes

  • This repository reflects learning progress, not perfection
  • Some sections may be incomplete or evolving
  • Improvements will be continuous

Author

Maintained by Skakarla2023 B.Tech CSE student building toward an AI Backend Engineer role — Java, Spring Boot, Spring AI, LangChain4j.


If you are learning Java backend engineering, feel free to explore, fork, or adapt the structure for your own practice.

About

A beginner-friendly repository covering core Java fundamentals and concepts with clear explanations and practical examples.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages