Yes.
Let's say you have a file in a directory: "src/main/java/org/zsh/Main.java". The class is named Main and is in the package org.zsh in this case.
If you compile it with "javac src/main/java/org/zsh/Main.java" it will generate a file named "src/main/java/org/zsh/Main.class".
So, if you execute it the old way, you would do "java -cp src/main/java org.zsh.Main" which means "Please execute the class with a main() method that is called Main and found in the package org.zsh. The classpath where this class can be found is "src/main".
If you execute it the new way, you don't need to compile with javac. So you only have "src/main/java/org/zsh/Main.java".
And you will execute by doing "java src/main/java/org/zsh/Main.java" and that's it.
Bottom line, indeed, the ".java" at the end tells that it's a java source file and not a compile class found in the classpath that you want to execute.