posted 16 years ago
It has nothing to do with class loading, since *.java files don't contain loadable classes!
It has everything to do with making the command-line compiler's life easier. If class A refers to class B, and class B is stored in a file named B.java, then when A is being compiled, the compiler can find the source for class B automatically. If it were stored in a file by any other name, then the compiler would have to search every *.java file it could find, which is obviously not so efficient.