Java / Quarkus Interview questions
What is the difference between JVM mode and native mode in Quarkus?
These are the two ways a built Quarkus application can actually be packaged and run, and the difference goes beyond just speed — it affects the build pipeline, deployment artifact, and even which dynamic Java features are safely usable.
| JVM Mode | Native Mode |
| Packaged as a runnable JAR, executed by any compatible JVM. | Packaged as an OS/architecture-specific native binary. |
| Build step: standard Java compilation plus Quarkus augmentation. | Build step: augmentation, then GraalVM native-image AOT compilation. |
| Full dynamic reflection/JIT available at runtime as normal. | Reflection, dynamic proxies, and resources need explicit registration. |
| Startup in hundreds of milliseconds. | Startup in tens of milliseconds. |
A useful mental model: JVM mode is "Quarkus's build-time optimizations applied on top of a normal JVM," while native mode goes a step further and removes the JVM itself from the runtime picture entirely, at the cost of a stricter, less dynamically flexible build.
More Related questions...