| 1 | 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 |
| 2 | 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 |
| 3 | How does Gradle's incremental build and build cache mechanism achieve significantly faster rebuild times compared to Maven's default behavior? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Advanced |
| 4 | 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 |
| 5 | How would you configure a Maven or Gradle build to produce a reproducible build (bit-for-bit identical output given the same source), and why does this matter for supply chain security? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Advanced |
| 6 | How would you configure a Maven or Gradle build to produce a shaded/fat JAR containing all dependencies bundled into a single executable JAR file? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Advanced |
| 7 | What is the Maven build lifecycle, and what do the common phases (validate, compile, test, package, install, deploy) each do? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Intermediate |
| 8 | How do you manage different configurations for different environments (development, staging, production) using Maven profiles or Gradle's equivalent mechanisms? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Intermediate |
| 9 | How would you configure a multi-module Maven or Gradle project, and what benefits does modularizing a large codebase this way provide? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Advanced |
| 10 | What is the standard Maven directory layout, and why does following this convention matter? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Beginner |
| 11 | 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 |
| 12 | How do you resolve a dependency version conflict manually in Maven using exclusions, and when would this be necessary despite the automatic nearest-wins resolution? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Intermediate |
| 13 | What is a Maven BOM (Bill of Materials), and how does it help manage consistent dependency versions across a multi-module project or organization? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Intermediate |
| 14 | How do you configure the Maven Compiler Plugin to target a specific Java language version, and what's the difference between source, target, and release configuration? Java › Build Tools: Maven & Gradle | Java | Build Tools: Maven & Gradle | Intermediate |
| 15 | 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 |
| 16 | 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 |
| 17 | How do you name a Java module, and what naming convention is recommended to avoid conflicts with other modules? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Beginner |
| 18 | What is the difference between compile-time annotation processing (via javax.annotation.processing.Processor) and runtime reflection-based annotation reading? Java › Annotations | Java | Annotations | Intermediate |
| 19 | 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 |
| 20 | How do default methods (introduced in Java 8) let an interface provide a method implementation, and what problem were they specifically introduced to solve? Java › Interfaces & Abstract Classes | Java | Interfaces & Abstract Classes | Intermediate |
| 21 | 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 |
| 22 | How would you write and run a basic 'Hello World' JPMS-modularized application from scratch, including the module-info.java, directory structure, and the specific javac/java command-line invocations needed? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Intermediate |
| 23 | What are the practical trade-offs and adoption challenges that have led many real-world Java projects to NOT fully adopt JPMS modularization even years after its introduction, despite its stated benefits? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Intermediate |
| 24 | How does Java's annotation processing API (javax.annotation.processing) enable compile-time code generation frameworks like Lombok or Dagger, and what are its key limitations? Java › Annotations | Java | Annotations | Advanced |
| 25 | 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 |
| 26 | How would you convert between the legacy java.util.Date/Calendar classes and the modern java.time API when working with older libraries or APIs that still require the legacy types? Java › Java Date & Time API (java.time) | Java | Java Date & Time API (java.time) | Advanced |
| 27 | What is the difference between 'requires' and 'requires transitive', and how does transitive dependency propagation work in the module system? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Advanced |
| 28 | 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 |
| 29 | How would you use the 'requires static' directive to declare an optional, compile-time-only dependency that isn't required to be present at runtime? Java › Java Platform Module System (JPMS) | Java | Java Platform Module System (JPMS) | Advanced |