| 1 | 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 |
| 2 | 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 |
| 3 | 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 |
| 4 | 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 |
| 5 | How does the Java Platform Module System (JPMS, introduced in Java 9) change class loading and encapsulation compared to the traditional classpath model? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Intermediate |
| 6 | 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 |
| 7 | How does the ServiceLoader mechanism (java.util.ServiceLoader) provide a standardized way to discover and load implementations at runtime without hardcoding class names, and how does it relate to class loading? 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 | 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 |
| 10 | 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 |
| 11 | How do you programmatically load a class by its fully-qualified name at runtime using Class.forName(), and what is a common real-world use case for this? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Beginner |
| 12 | What causes a ClassNotFoundException versus a NoClassDefFoundError, and how do you distinguish and diagnose each? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Intermediate |
| 13 | 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 |
| 14 | How does a thread context ClassLoader (Thread.currentThread().getContextClassLoader()) solve the problem of a core JDK class needing to load an application-provided implementation class, given parent delegation normally prevents this? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Advanced |
| 15 | How would you diagnose and resolve a 'split package' problem when using JPMS, where the same package is defined across two different modules on the module path? Java › Class Loading & Bytecode Verification | Java | Class Loading & Bytecode Verification | Advanced |
| 16 | How does the compiler implement inner classes at the bytecode level, and what synthetic elements (like a hidden outer-class reference field and synthetic accessor methods) does it generate to make this work? Java › Inner Classes & Anonymous Classes | Java | Inner Classes & Anonymous Classes | Advanced |
| 17 | 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 |
| 18 | What is the Java Platform Module System (JPMS, introduced in Java 9), and what core problem does it aim to solve compared to the traditional classpath-based approach? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Beginner |
| 19 | What is the difference between an instance initializer block and a static initializer block, and when does each execute relative to a class's constructors? Java › Java Fundamentals: Syntax, Data Types & Operators | Java | Java Fundamentals: Syntax, Data Types & Operators | Intermediate |
| 20 | What is an automatic module, and how does placing a plain (non-modularized) JAR on the module path (rather than the classpath) differ from leaving it on the classpath as part of the unnamed module? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Intermediate |
| 21 | 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 |
| 22 | What problem do build tools like Maven and Gradle solve for a Java project? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Beginner |
| 23 | What problem do generics solve compared to using raw types (like a pre-Java-5 List without a type parameter), and how do they improve compile-time type safety? Java › Generics | Java | Generics | Beginner |
| 24 | How does Gradle's build script (build.gradle / build.gradle.kts) differ structurally from Maven's declarative XML pom.xml? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Intermediate |
| 25 | What is the difference between Maven's <dependencies> scope values (compile, provided, runtime, test) and how do they affect what's included in the final packaged artifact? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Intermediate |
| 26 | What is type erasure, and how does it explain why generic type information is unavailable at runtime (e.g., why you can't do `if (obj instanceof List<String>)`)? Java › Generics | Java | Generics | Intermediate |
| 27 | What is a raw type in Java, and why does the compiler still permit using them (with an unchecked warning) despite generics having been available since Java 5? Java › Generics | Java | Generics | Intermediate |
| 28 | How does the ServiceLoader/Service Provider Interface pattern integrate with JPMS using the 'uses' and 'provides ... with' directives, replacing the older META-INF/services file-based mechanism? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Intermediate |
| 29 | How does Maven's dependency resolution algorithm handle transitive dependency version conflicts, and what is the "nearest definition wins" rule? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Advanced |
| 30 | How would you write a custom Maven plugin or Gradle task to perform project-specific build automation not covered by existing plugins? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Advanced |
| 31 | How does exception handling interact with generics and type erasure, specifically regarding why you cannot catch a generic type parameter as an exception type (catch (T e))? Java › Exceptions | Java | Exceptions | Advanced |
| 32 | How does generic method overload resolution interact with type erasure to sometimes produce a compile error for seemingly valid overloads (like two methods differing only by their generic type parameter)? Java › Generics | Java | Generics | Advanced |
| 33 | How does the 'unnamed module' work, and how does JPMS maintain backward compatibility with the vast ecosystem of pre-existing JARs that were never designed with modules in mind? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Advanced |
| 34 | How would you diagnose and resolve common JPMS migration errors, such as 'package is not visible' or a split package conflict, when modularizing an existing large application? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Advanced |
| 35 | 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 |