This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
It is just a requirement enforced by many Java compilers (javac included) ; it's not part of the language definition. It allows the compiler to find classes that it may need to compile while it's in the process of compiling another class. [ July 14, 2003: Message edited by: Ernest Friedman-Hill ]
Ernest is correct. This has been part of the language going all the way back to Oak. It is supposed to simplify dynamic compiling. If you are using a class in your class and that class hasn't been compiled yet, the compiler may be able to figure out where to look for it based on the source name.