| 1 | What is the role of the ClassLoader in the JVM, and what are the three built-in bootstrap/platform/application class loaders? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Beginner |
| 2 | What is garbage collection in the JVM, and what fundamental problem does it solve compared to manual memory management (like in C/C++)? Java › Garbage Collection | Java | Garbage Collection | Beginner |
| 3 | How does the generational hypothesis (most objects die young) inform the JVM's generational heap structure (young generation, old generation), and how does a minor GC differ from a major/full GC? Java › Garbage Collection | Java | Garbage Collection | Intermediate |
| 4 | What is bytecode verification, and what specific categories of invalid or unsafe bytecode does the JVM's verifier reject before allowing a class to run? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Advanced |
| 5 | How does the same class name loaded by two different ClassLoaders create two genuinely distinct types in the JVM, and what problems does this cause (such as with singletons or ClassCastException)? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Advanced |
| 6 | How does Class Data Sharing (CDS) and Application Class Data Sharing (AppCDS) improve JVM startup time, and how does it relate to class loading and verification? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Advanced |
| 7 | What is the purpose of the -Xverify:none (or newer -noverify) JVM flag, and why is disabling bytecode verification generally discouraged? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Intermediate |
| 8 | What is hot class reloading/redefinition (via Instrumentation.redefineClasses() or a JVM agent), and what are its practical limitations compared to a full class unload/reload? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Intermediate |
| 9 | What is the purpose of the addSuppressed() mechanism and getSuppressed() method on Throwable, and in what specific scenario does the JVM automatically populate suppressed exceptions? Java › Exceptions | Java | Exceptions | Intermediate |
| 10 | How would you use JVM flags to tune heap size (-Xms, -Xmx) and understand the trade-offs of setting them equal versus allowing dynamic heap resizing? Java › Garbage Collection | Java | Garbage Collection | Intermediate |
| 11 | How would you use jstat to monitor GC activity and heap generation sizes for a running JVM process in real time, without needing a full profiling tool? Java › Garbage Collection | Java | Garbage Collection | Intermediate |
| 12 | How does the JVM lay out array objects in memory, including the array header overhead, and how does this affect memory efficiency for very large arrays of primitives versus boxed wrapper types? Java › Arrays & Multidimensional Arrays | Java | Arrays & Multidimensional Arrays | Advanced |
| 13 | How would you diagnose a suspected thread deadlock in a running production JVM using a thread dump, and what specific information in the dump reveals the deadlock? Java › Concurrency & Threads | Java | Concurrency & Threads | Advanced |
| 14 | How does the JVM's tri-color marking algorithm (used by concurrent garbage collectors like G1) work to identify reachable objects while application threads continue running concurrently, and what problem does a write barrier solve in this context? Java › Garbage Collection | Java | Garbage Collection | Advanced |
| 15 | How would you determine whether an application is spending an excessive amount of time in garbage collection (GC overhead) relative to actual application work, and what JVM flags or tools help measure and diagnose this? Java › Garbage Collection | Java | Garbage Collection | Advanced |
| 16 | How would you correctly handle character encoding when reading a text file whose encoding isn't known in advance (or might not be UTF-8), and what pitfalls exist with relying on the JVM's platform default charset? Java › I/O & NIO | Java | I/O & NIO | Advanced |
| 17 | How does JPMS's strong encapsulation interact with reflection-heavy frameworks and libraries that predate the module system, and what specific JVM flags (like --add-opens) exist as an escape hatch for cases where proper module declarations aren't feasible? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Advanced |
| 18 | What does it mean for an object to be 'eligible for garbage collection' in terms of reachability from GC roots? Java › Garbage Collection | Java | Garbage Collection | Beginner |
| 19 | What is the parent delegation model in Java class loading, and why is it important for security and consistency? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Intermediate |
| 20 | What are the phases of class loading (loading, linking, initialization), and what specifically happens during each? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Intermediate |
| 21 | What are the atomic classes in java.util.concurrent.atomic (AtomicInteger, AtomicLong, AtomicReference), and how do they achieve thread-safe operations without traditional locking? Java › Concurrency & Threads | Java | Concurrency & Threads | Intermediate |
| 22 | What is the difference between Error and Exception in Java's Throwable hierarchy, and why should application code generally avoid catching Error subclasses like OutOfMemoryError or StackOverflowError? Java › Exceptions | Java | Exceptions | Intermediate |
| 23 | What are the four types of references in java.lang.ref (strong, soft, weak, phantom), and how does each affect an object's eligibility for garbage collection? Java › Garbage Collection | Java | Garbage Collection | Intermediate |
| 24 | How does an inner class's implicit reference to its outer instance create a potential memory leak risk, and in what specific scenario does this become a genuine practical concern? Java › Inner Classes & Anonymous Classes | Java | Inner Classes & Anonymous Classes | Intermediate |
| 25 | What is the difference between LocalDate, LocalTime, LocalDateTime, and ZonedDateTime, and when would you use each? Java › Java Date & Time API (java.time) | Java | Java Date & Time API (java.time) | Intermediate |
| 26 | How would you implement a custom ClassLoader to load classes from a non-standard source, such as loading plugin JARs dynamically at runtime, and what challenges arise with class unloading? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Advanced |
| 27 | How does the Java Memory Model's happens-before relationship formally define when changes made by one thread are guaranteed to be visible to another thread, and what role does the volatile keyword play? Java › Concurrency & Threads | Java | Concurrency & Threads | Advanced |
| 28 | How do lambda expressions get compiled at the bytecode level using invokedynamic, and how does this differ from how an anonymous inner class implementing the same functional interface would be compiled? Java › Functional Interfaces & Method References | Java | Functional Interfaces & Method References | Advanced |
| 29 | How do the different modern garbage collectors (G1, ZGC, Shenandoah) differ in their approach to minimizing GC pause times, and when would you choose one over the default? Java › Garbage Collection | Java | Garbage Collection | Advanced |
| 30 | What is escape analysis, and how does it enable the JIT compiler to perform stack allocation or scalar replacement for objects that don't actually need heap allocation, reducing GC pressure? Java › Garbage Collection | Java | Garbage Collection | Advanced |
| 31 | How does Metaspace (replacing PermGen since Java 8) store class metadata, and what specific configuration and failure modes differ from the old PermGen model? Java › Garbage Collection | Java | Garbage Collection | Advanced |
| 32 | How would you implement memory-mapped file I/O using MappedByteBuffer, and what performance advantage does this provide for very large files compared to traditional stream-based reading? Java › I/O & NIO | Java | I/O & NIO | Advanced |
| 33 | What is the role of Span<T> and Memory<T> in .NET, and why can't Span<T> be used inside an async method? C# › Arrays, Span<T> & Memory<T> | C# | Arrays, Span<T> & Memory<T> | Advanced |