Java
298 highly-curated topics available for revision.
1. Fundamentals
Java Architecture & JVM
MediumUnderstanding Java Architecture & JVM in Java.
JDK vs JRE vs JVM
MediumUnderstanding JDK vs JRE vs JVM in Java.
Java Compilation & Bytecode
MediumUnderstanding Java Compilation & Bytecode in Java.
Primitive vs Reference Types
MediumUnderstanding Primitive vs Reference Types in Java.
Variables & Data Types
MediumUnderstanding Variables & Data Types in Java.
Type Casting
MediumUnderstanding Type Casting in Java.
Operators
MediumUnderstanding Operators in Java.
Control Flow
MediumUnderstanding Control Flow in Java.
Arrays
MediumUnderstanding Arrays in Java.
Strings
MediumUnderstanding Strings in Java.
String Pool
MediumUnderstanding String Pool in Java.
String vs StringBuilder vs StringBuffer
MediumUnderstanding String vs StringBuilder vs StringBuffer in Java.
Wrapper Classes
MediumUnderstanding Wrapper Classes in Java.
Autoboxing & Unboxing
MediumUnderstanding Autoboxing & Unboxing in Java.
Pass by Value
MediumUnderstanding Pass by Value in Java.
== vs equals()
MediumUnderstanding == vs equals() in Java.
final Keyword
MediumUnderstanding final Keyword in Java.
static Keyword
MediumUnderstanding static Keyword in Java.
2. Object-Oriented Programming
Classes & Objects
MediumUnderstanding Classes & Objects in Java.
Constructors
MediumUnderstanding Constructors in Java.
Encapsulation
MediumUnderstanding Encapsulation in Java.
Inheritance
MediumUnderstanding Inheritance in Java.
Polymorphism
MediumUnderstanding Polymorphism in Java.
Abstraction
MediumUnderstanding Abstraction in Java.
Interfaces
MediumUnderstanding Interfaces in Java.
Abstract Classes
MediumUnderstanding Abstract Classes in Java.
Method Overloading
MediumUnderstanding Method Overloading in Java.
Method Overriding
MediumUnderstanding Method Overriding in Java.
Composition vs Inheritance
MediumUnderstanding Composition vs Inheritance in Java.
Association, Aggregation & Composition
MediumUnderstanding Association, Aggregation & Composition in Java.
Access Modifiers
MediumUnderstanding Access Modifiers in Java.
this vs super
MediumUnderstanding this vs super in Java.
Immutable Classes
MediumUnderstanding Immutable Classes in Java.
Object Class
MediumUnderstanding Object Class in Java.
toString()
MediumUnderstanding toString() in Java.
equals() & hashCode()
MediumUnderstanding equals() & hashCode() in Java.
Covariant Return Types
MediumUnderstanding Covariant Return Types in Java.
3. Collections
Collections Framework
MediumUnderstanding Collections Framework in Java.
Collection vs Collections
MediumUnderstanding Collection vs Collections in Java.
List vs Set vs Map
MediumUnderstanding List vs Set vs Map in Java.
ArrayList
MediumUnderstanding ArrayList in Java.
LinkedList
MediumUnderstanding LinkedList in Java.
Vector
MediumUnderstanding Vector in Java.
Stack
MediumUnderstanding Stack in Java.
HashSet
MediumUnderstanding HashSet in Java.
LinkedHashSet
MediumUnderstanding LinkedHashSet in Java.
TreeSet
MediumUnderstanding TreeSet in Java.
HashMap
MediumUnderstanding HashMap in Java.
LinkedHashMap
MediumUnderstanding LinkedHashMap in Java.
TreeMap
MediumUnderstanding TreeMap in Java.
Hashtable
MediumUnderstanding Hashtable in Java.
ConcurrentHashMap
MediumUnderstanding ConcurrentHashMap in Java.
Queue
MediumUnderstanding Queue in Java.
Deque
MediumUnderstanding Deque in Java.
PriorityQueue
MediumUnderstanding PriorityQueue in Java.
Iterator
MediumUnderstanding Iterator in Java.
ListIterator
MediumUnderstanding ListIterator in Java.
Comparable vs Comparator
MediumUnderstanding Comparable vs Comparator in Java.
HashMap Internals
MediumUnderstanding HashMap Internals in Java.
HashSet Internals
MediumUnderstanding HashSet Internals in Java.
Fail-Fast vs Fail-Safe Iterators
MediumUnderstanding Fail-Fast vs Fail-Safe Iterators in Java.
4. Generics
Generics
MediumUnderstanding Generics in Java.
Generic Classes
MediumUnderstanding Generic Classes in Java.
Generic Methods
MediumUnderstanding Generic Methods in Java.
Bounded Type Parameters
MediumUnderstanding Bounded Type Parameters in Java.
Wildcards
MediumUnderstanding Wildcards in Java.
? extends vs ? super
MediumUnderstanding ? extends vs ? super in Java.
Type Erasure
MediumUnderstanding Type Erasure in Java.
Generic Interfaces
MediumUnderstanding Generic Interfaces in Java.
PECS Principle
MediumUnderstanding PECS Principle in Java.
5. Exception Handling
Exceptions
MediumUnderstanding Exceptions in Java.
Checked vs Unchecked Exceptions
MediumUnderstanding Checked vs Unchecked Exceptions in Java.
Error vs Exception
MediumUnderstanding Error vs Exception in Java.
try-catch
MediumUnderstanding try-catch in Java.
finally
MediumUnderstanding finally in Java.
throw vs throws
MediumUnderstanding throw vs throws in Java.
Custom Exceptions
MediumUnderstanding Custom Exceptions in Java.
Exception Propagation
MediumUnderstanding Exception Propagation in Java.
Multi-catch
MediumUnderstanding Multi-catch in Java.
Try-with-resources
MediumUnderstanding Try-with-resources in Java.
Suppressed Exceptions
MediumUnderstanding Suppressed Exceptions in Java.
6. Java 8+ Features
Lambda Expressions
MediumUnderstanding Lambda Expressions in Java.
Functional Interfaces
MediumUnderstanding Functional Interfaces in Java.
Predicate
MediumUnderstanding Predicate in Java.
Function
MediumUnderstanding Function in Java.
Consumer
MediumUnderstanding Consumer in Java.
Supplier
MediumUnderstanding Supplier in Java.
Method References
MediumUnderstanding Method References in Java.
Stream API
MediumUnderstanding Stream API in Java.
Intermediate vs Terminal Operations
MediumUnderstanding Intermediate vs Terminal Operations in Java.
map vs flatMap
MediumUnderstanding map vs flatMap in Java.
filter
MediumUnderstanding filter in Java.
reduce
MediumUnderstanding reduce in Java.
collect
MediumUnderstanding collect in Java.
Optional
MediumUnderstanding Optional in Java.
Default Methods
MediumUnderstanding Default Methods in Java.
Static Interface Methods
MediumUnderstanding Static Interface Methods in Java.
Date & Time API
MediumUnderstanding Date & Time API in Java.
7. Stream API
Stream Creation
MediumUnderstanding Stream Creation in Java.
Stream Pipeline
MediumUnderstanding Stream Pipeline in Java.
Intermediate Operations
MediumUnderstanding Intermediate Operations in Java.
Terminal Operations
MediumUnderstanding Terminal Operations in Java.
map
MediumUnderstanding map in Java.
filter
MediumUnderstanding filter in Java.
flatMap
MediumUnderstanding flatMap in Java.
distinct
MediumUnderstanding distinct in Java.
sorted
MediumUnderstanding sorted in Java.
limit & skip
MediumUnderstanding limit & skip in Java.
peek
MediumUnderstanding peek in Java.
reduce
MediumUnderstanding reduce in Java.
collect
MediumUnderstanding collect in Java.
groupingBy
MediumUnderstanding groupingBy in Java.
partitioningBy
MediumUnderstanding partitioningBy in Java.
Parallel Streams
MediumUnderstanding Parallel Streams in Java.
Stream vs Collection
MediumUnderstanding Stream vs Collection in Java.
8. Multithreading & Concurrency
Threads
MediumUnderstanding Threads in Java.
Process vs Thread
MediumUnderstanding Process vs Thread in Java.
Thread Lifecycle
MediumUnderstanding Thread Lifecycle in Java.
Creating Threads
MediumUnderstanding Creating Threads in Java.
Runnable vs Callable
MediumUnderstanding Runnable vs Callable in Java.
Thread Scheduling
MediumUnderstanding Thread Scheduling in Java.
synchronized
MediumUnderstanding synchronized in Java.
Locks
MediumUnderstanding Locks in Java.
ReentrantLock
MediumUnderstanding ReentrantLock in Java.
ReadWriteLock
MediumUnderstanding ReadWriteLock in Java.
volatile
MediumUnderstanding volatile in Java.
Atomic Variables
MediumUnderstanding Atomic Variables in Java.
Race Conditions
MediumUnderstanding Race Conditions in Java.
Deadlocks
MediumUnderstanding Deadlocks in Java.
Starvation
MediumUnderstanding Starvation in Java.
Livelock
MediumUnderstanding Livelock in Java.
Thread Safety
MediumUnderstanding Thread Safety in Java.
Immutability & Thread Safety
MediumUnderstanding Immutability & Thread Safety in Java.
ExecutorService
MediumUnderstanding ExecutorService in Java.
Thread Pools
MediumUnderstanding Thread Pools in Java.
Future
MediumUnderstanding Future in Java.
CompletableFuture
MediumUnderstanding CompletableFuture in Java.
ForkJoinPool
MediumUnderstanding ForkJoinPool in Java.
CountDownLatch
MediumUnderstanding CountDownLatch in Java.
CyclicBarrier
MediumUnderstanding CyclicBarrier in Java.
Semaphore
MediumUnderstanding Semaphore in Java.
Phaser
MediumUnderstanding Phaser in Java.
Concurrent Collections
MediumUnderstanding Concurrent Collections in Java.
9. JVM & Memory
JVM Architecture
MediumUnderstanding JVM Architecture in Java.
Class Loader
MediumUnderstanding Class Loader in Java.
Bootstrap vs Platform vs Application ClassLoader
MediumUnderstanding Bootstrap vs Platform vs Application ClassLoader in Java.
Runtime Data Areas
MediumUnderstanding Runtime Data Areas in Java.
Heap vs Stack
MediumUnderstanding Heap vs Stack in Java.
Metaspace
MediumUnderstanding Metaspace in Java.
Program Counter
MediumUnderstanding Program Counter in Java.
Native Method Stack
MediumUnderstanding Native Method Stack in Java.
Garbage Collection
MediumUnderstanding Garbage Collection in Java.
GC Algorithms
MediumUnderstanding GC Algorithms in Java.
Minor vs Major vs Full GC
MediumUnderstanding Minor vs Major vs Full GC in Java.
Stop-the-World
MediumUnderstanding Stop-the-World in Java.
Strong vs Weak vs Soft vs Phantom References
MediumUnderstanding Strong vs Weak vs Soft vs Phantom References in Java.
Memory Leaks
MediumUnderstanding Memory Leaks in Java.
StackOverflowError vs OutOfMemoryError
MediumUnderstanding StackOverflowError vs OutOfMemoryError in Java.
JVM Tuning Basics
MediumUnderstanding JVM Tuning Basics in Java.
JIT Compiler
MediumUnderstanding JIT Compiler in Java.
Escape Analysis
MediumUnderstanding Escape Analysis in Java.
10. Garbage Collection
Garbage Collection Basics
MediumUnderstanding Garbage Collection Basics in Java.
Mark and Sweep
MediumUnderstanding Mark and Sweep in Java.
Mark and Compact
MediumUnderstanding Mark and Compact in Java.
Generational GC
MediumUnderstanding Generational GC in Java.
Young vs Old Generation
MediumUnderstanding Young vs Old Generation in Java.
Minor GC
MediumUnderstanding Minor GC in Java.
Major GC
MediumUnderstanding Major GC in Java.
Full GC
MediumUnderstanding Full GC in Java.
G1 Garbage Collector
MediumUnderstanding G1 Garbage Collector in Java.
ZGC
MediumUnderstanding ZGC in Java.
Shenandoah GC
MediumUnderstanding Shenandoah GC in Java.
GC Tuning
MediumUnderstanding GC Tuning in Java.
GC Logs
MediumUnderstanding GC Logs in Java.
11. Interfaces & Advanced OOP
Interface Default Methods
MediumUnderstanding Interface Default Methods in Java.
Functional Interfaces
MediumUnderstanding Functional Interfaces in Java.
Sealed Classes
MediumUnderstanding Sealed Classes in Java.
Records
MediumUnderstanding Records in Java.
Nested Classes
MediumUnderstanding Nested Classes in Java.
Inner Classes
MediumUnderstanding Inner Classes in Java.
Anonymous Classes
MediumUnderstanding Anonymous Classes in Java.
Enums
MediumUnderstanding Enums in Java.
Enum Internals
MediumUnderstanding Enum Internals in Java.
Static Nested Classes
MediumUnderstanding Static Nested Classes in Java.
Reflection
MediumUnderstanding Reflection in Java.
Annotations
MediumUnderstanding Annotations in Java.
Custom Annotations
MediumUnderstanding Custom Annotations in Java.
12. Java Memory Model
Java Memory Model
MediumUnderstanding Java Memory Model in Java.
Happens-Before Relationship
MediumUnderstanding Happens-Before Relationship in Java.
Visibility
MediumUnderstanding Visibility in Java.
Atomicity
MediumUnderstanding Atomicity in Java.
Ordering
MediumUnderstanding Ordering in Java.
volatile
MediumUnderstanding volatile in Java.
synchronized
MediumUnderstanding synchronized in Java.
Memory Barriers
MediumUnderstanding Memory Barriers in Java.
Safe Publication
MediumUnderstanding Safe Publication in Java.
Double-Checked Locking
MediumUnderstanding Double-Checked Locking in Java.
13. I/O & Serialization
Java I/O
MediumUnderstanding Java I/O in Java.
InputStream & OutputStream
MediumUnderstanding InputStream & OutputStream in Java.
Reader & Writer
MediumUnderstanding Reader & Writer in Java.
Buffered Streams
MediumUnderstanding Buffered Streams in Java.
NIO
MediumUnderstanding NIO in Java.
Files & Paths
MediumUnderstanding Files & Paths in Java.
Channels & Buffers
MediumUnderstanding Channels & Buffers in Java.
Serialization
MediumUnderstanding Serialization in Java.
Deserialization
MediumUnderstanding Deserialization in Java.
Serializable
MediumUnderstanding Serializable in Java.
serialVersionUID
MediumUnderstanding serialVersionUID in Java.
Externalizable
MediumUnderstanding Externalizable in Java.
Serialization Security
MediumUnderstanding Serialization Security in Java.
14. Reflection & Annotations
Reflection API
MediumUnderstanding Reflection API in Java.
Class Object
MediumUnderstanding Class Object in Java.
Inspecting Fields & Methods
MediumUnderstanding Inspecting Fields & Methods in Java.
Dynamic Object Creation
MediumUnderstanding Dynamic Object Creation in Java.
Custom Annotations
MediumUnderstanding Custom Annotations in Java.
Annotation Processing
MediumUnderstanding Annotation Processing in Java.
Runtime vs Compile-time Annotations
MediumUnderstanding Runtime vs Compile-time Annotations in Java.
Reflection Performance & Security
MediumUnderstanding Reflection Performance & Security in Java.
15. Modern Java
Records
MediumUnderstanding Records in Java.
Sealed Classes
MediumUnderstanding Sealed Classes in Java.
Pattern Matching
MediumUnderstanding Pattern Matching in Java.
Pattern Matching for instanceof
MediumUnderstanding Pattern Matching for instanceof in Java.
Switch Expressions
MediumUnderstanding Switch Expressions in Java.
Text Blocks
MediumUnderstanding Text Blocks in Java.
Local Variable Type Inference (var)
MediumUnderstanding Local Variable Type Inference (var) in Java.
Virtual Threads
MediumUnderstanding Virtual Threads in Java.
Structured Concurrency
MediumUnderstanding Structured Concurrency in Java.
Pattern Matching for switch
MediumUnderstanding Pattern Matching for switch in Java.
16. Virtual Threads & Modern Concurrency
Virtual Threads
MediumUnderstanding Virtual Threads in Java.
Platform Threads vs Virtual Threads
MediumUnderstanding Platform Threads vs Virtual Threads in Java.
Virtual Thread Scheduling
MediumUnderstanding Virtual Thread Scheduling in Java.
Thread-per-request Model
MediumUnderstanding Thread-per-request Model in Java.
Structured Concurrency
MediumUnderstanding Structured Concurrency in Java.
Scoped Values
MediumUnderstanding Scoped Values in Java.
When to Use Virtual Threads
MediumUnderstanding When to Use Virtual Threads in Java.
Virtual Threads vs Reactive Programming
MediumUnderstanding Virtual Threads vs Reactive Programming in Java.
17. JDBC & Database
JDBC Architecture
MediumUnderstanding JDBC Architecture in Java.
JDBC Driver
MediumUnderstanding JDBC Driver in Java.
Connection
MediumUnderstanding Connection in Java.
Statement vs PreparedStatement
MediumUnderstanding Statement vs PreparedStatement in Java.
CallableStatement
MediumUnderstanding CallableStatement in Java.
ResultSet
MediumUnderstanding ResultSet in Java.
Transactions
MediumUnderstanding Transactions in Java.
Commit & Rollback
MediumUnderstanding Commit & Rollback in Java.
Batch Processing
MediumUnderstanding Batch Processing in Java.
Connection Pooling
MediumUnderstanding Connection Pooling in Java.
SQL Injection Prevention
MediumUnderstanding SQL Injection Prevention in Java.
18. Testing
JUnit
MediumUnderstanding JUnit in Java.
Unit Testing
MediumUnderstanding Unit Testing in Java.
Integration Testing
MediumUnderstanding Integration Testing in Java.
Mockito
MediumUnderstanding Mockito in Java.
Mock vs Spy
MediumUnderstanding Mock vs Spy in Java.
Test Doubles
MediumUnderstanding Test Doubles in Java.
Parameterized Tests
MediumUnderstanding Parameterized Tests in Java.
Assertions
MediumUnderstanding Assertions in Java.
Integration Testing with Spring Boot
MediumUnderstanding Integration Testing with Spring Boot in Java.
19. Performance & Best Practices
Java Performance Optimization
MediumUnderstanding Java Performance Optimization in Java.
String Concatenation
MediumUnderstanding String Concatenation in Java.
Collection Selection
MediumUnderstanding Collection Selection in Java.
Object Allocation
MediumUnderstanding Object Allocation in Java.
Memory Optimization
MediumUnderstanding Memory Optimization in Java.
CPU Profiling
MediumUnderstanding CPU Profiling in Java.
JVM Profiling
MediumUnderstanding JVM Profiling in Java.
Database Connection Pooling
MediumUnderstanding Database Connection Pooling in Java.
Thread Pool Sizing
MediumUnderstanding Thread Pool Sizing in Java.
Caching
MediumUnderstanding Caching in Java.
Lazy Initialization
MediumUnderstanding Lazy Initialization in Java.
Premature Optimization
MediumUnderstanding Premature Optimization in Java.
20. Interview Questions
== vs equals()
MediumUnderstanding == vs equals() in Java.
equals() & hashCode()
MediumUnderstanding equals() & hashCode() in Java.
HashMap Internals
MediumUnderstanding HashMap Internals in Java.
ArrayList vs LinkedList
MediumUnderstanding ArrayList vs LinkedList in Java.
HashMap vs ConcurrentHashMap
MediumUnderstanding HashMap vs ConcurrentHashMap in Java.
Comparable vs Comparator
MediumUnderstanding Comparable vs Comparator in Java.
String vs StringBuilder vs StringBuffer
MediumUnderstanding String vs StringBuilder vs StringBuffer in Java.
Abstract Class vs Interface
MediumUnderstanding Abstract Class vs Interface in Java.
Overloading vs Overriding
MediumUnderstanding Overloading vs Overriding in Java.
Composition vs Inheritance
MediumUnderstanding Composition vs Inheritance in Java.
Checked vs Unchecked Exceptions
MediumUnderstanding Checked vs Unchecked Exceptions in Java.
final vs finally vs finalize
MediumUnderstanding final vs finally vs finalize in Java.
throw vs throws
MediumUnderstanding throw vs throws in Java.
Stack vs Heap
MediumUnderstanding Stack vs Heap in Java.
JVM vs JDK vs JRE
MediumUnderstanding JVM vs JDK vs JRE in Java.
Garbage Collection
MediumUnderstanding Garbage Collection in Java.
synchronized vs volatile
MediumUnderstanding synchronized vs volatile in Java.
Runnable vs Callable
MediumUnderstanding Runnable vs Callable in Java.
ExecutorService
MediumUnderstanding ExecutorService in Java.
CompletableFuture
MediumUnderstanding CompletableFuture in Java.
Stream API
MediumUnderstanding Stream API in Java.
map vs flatMap
MediumUnderstanding map vs flatMap in Java.
? extends vs ? super
MediumUnderstanding ? extends vs ? super in Java.
Immutable Objects
MediumUnderstanding Immutable Objects in Java.
Java Memory Model
MediumUnderstanding Java Memory Model in Java.
Deadlocks
MediumUnderstanding Deadlocks in Java.
Virtual Threads
MediumUnderstanding Virtual Threads in Java.
Spring Dependency Injection
MediumUnderstanding Spring Dependency Injection in Java.
JPA Lazy vs Eager Loading
MediumUnderstanding JPA Lazy vs Eager Loading in Java.
N+1 Query Problem
MediumUnderstanding N+1 Query Problem in Java.