The Java Platform Debugger Architecture (JPDA) is a collection of APIs to debug Java code.
JDI is the highest-layer of the Java Platform Debugger Architecture.
It allows to access the JVM and the internal variables of the debugged program.
It also allows to set breakpoints, stepping, and handle threads.
[1]