Skip to main content
Link
Menu
Expand
(external link)
Document
Search
Copy
Copied
Backend Engineering Notes
Backend Engineering Notes
Spring Boot
Annotations
ConfigurationProperties
Conditional
Scheduled
Stereotype Annotations
Cache
Caching Concepts and Usage
Spring Core
How Spring Boot Works (End-to-End)
IoC vs DI
ApplicationContext vs BeanFactory
Spring Bean Lifecycle
Bean Scopes in Spring
Spring Boot Profiles
Transactions
How @Transactional works internally
Observability
Spring Boot Actuator
Spring Data JPA
Repository Interfaces
Entity Lifecycle
Derived Query Methods
JPQL and Native Queries
Pagination and Sorting
Entity Relationships
Fetch and Cascade Types
N+1 Query Problem
Embeddable and Embedded
Hibernate Cache
Hibernate Session APIs
Spring Web
Validation in Spring Boot
API Versioning
Async in Spring Boot
AOP
Advice Types
Java
Core
static import
Immutable Classes
Exception-Handling
Custom Exceptions
Java-17
Records (Java 16+)
Sealed Classes (Java 17)
Pattern Matching (instanceof & switch)
Switch Expressions
Text Blocks (Java 15+)
Helpful NullPointerExceptions (Java 14+)
Java-8
Optional
Stream API
Programs – Java
Array
Move 0's to End of Number
Find '#words' in array[sentences]
MissingNumberInArray
Strings
Run Length Encoding of String
AnagramCheck
Frequency of Words
First Repeating Char
Filter Integers From List of Strings
ReverseVowels
Java8+ Employee
Sorting Problems
Nth Highest Salary
Grouping Problems
Map
Sort a map by Key
Sort a map by Values
Memory-Management
JVM Architecture
Garbage Collection (GC)
OutOfMemoryError Handling & Heap Dump Analysis
Preventing Memory Leaks
Threads
Thread Lifecycle
Creating Threads
start() vs run()
Daemon vs User Threads
Thread Priority
Synchronization
SOLID Principles
Method Overriding - Rules
Microservices
Microservices Design Patterns
Microservices Components List
Scalability
Service Registry & Discovery
API Gateway
Centralized Configuration
Resilience4j
Circuit Breaker
Retry
Rate Limiter
TimeLimiter
Bulkhead Pattern
Combining Resilience4j Patterns
Transactional Boundaries
Testing
Testing Fundamentals
JUnit 5
Mockito
Spring Boot Testing
Design Patterns
Creational Patterns
Singleton Pattern
Factory Method Pattern
Abstract Factory Pattern
Builder Pattern
Prototype Pattern
Database
SQL
Aggregation Functions
GROUP BY & HAVING
JOINS
Indexes in RDBMS
Transaction Fundamentals & ACID Principles
X vs Y
Exceptions
Checked Exceptions vs Unchecked Exceptions
ClassNotFoundException vs NoClassDefFoundError
StackOverflowError vs OutOfMemoryError
throw vs throws
try-catch vs try-with-resources
RuntimeException vs Exception
IllegalArgumentException vs IllegalStateException
Collections
List vs Set
ArrayList vs LinkedList
HashSet vs TreeSet
HashMap vs Hashtable
HashMap vs ConcurrentHashMap
HashMap vs TreeMap
List vs Array
Enumeration vs Iterator vs ListIterator
Set vs Map
Comparable vs Comparator
Collection vs Collections
Map vs Dictionary
Fail-fast vs Fail-safe Iterator
Vector vs ArrayList
HashMap vs LinkedHashMap
TreeSet vs TreeMap
HashMap vs WeakHashMap vs IdentityHashMap
EnumMap vs HashMap
Streams
map vs flatMap (Java 8 Streams)
List.sort() vs stream().sorted()
stream() vs parallelStream()
forEach() vs forEachOrdered()
filter() vs map()
collect() vs forEach()
findFirst() vs findAny()
toList() vs collect(Collectors.toList())
limit() vs skip()
Lazy vs Eager Evaluation
Intermediate vs Terminal Operations
String
Heap vs Stack
equals() vs hashCode()
Git
git cherry-pick
git log
git rebase
git squash
git merge
git tag
Regular Expressions
Kafka
Messaging & Event‑Driven Fundamentals
Message
Producer
Consumer
Broker
Topic
Partition
Consumer Group
Offset
Kafka Lag
Search Backend Engineering Notes
GitHub Repository
Backend Engineering Notes
Java
Memory-Management
Table of contents
JVM Architecture
Garbage Collection (GC)
OutOfMemoryError Handling & Heap Dump Analysis
Preventing Memory Leaks