If fields defined in a Java class as 'private' are only accessible from within their own class - how does the debugging tool show them and their values when we are walking through an executing code?
Picture-In-Picture Screenshot for illustration:
My best guess is that the JVM has a debugging mode that allows a special debugging package to access these. Running in debugging mode (such as a debug configuration from the IDE) allows this special package (which the IDE knows to use) to do its thing.
It's just interesting... No work is reliant on your answer here :)