Start Here: Programming and Java from Zero
What a program is, what Java, the JDK and the JVM are, which Java version to use, how to run your first program, and what really happens when it runs.
This phase assumes you have never written a line of code. We start with what a program is (a list of exact instructions), why computers need programming languages, and how Java turns the text you type into something a computer can run. Every new word is explained before it is used.
Then you get your hands dirty: install a JDK, compile and run your first program, read every part of it, play with Java line by line in JShell, and learn to read the error messages that every programmer sees many times a day. Errors are not failures. They are the computer telling you exactly where to look.
The last topic goes all the way down: how javac produces bytecode, how the JVM loads classes, verifies them, interprets them and then compiles hot code to machine code with its JIT compilers. Beginners get the picture, and experienced engineers get the details that come up in interviews and performance work.