Why No #include statements?
Java maps fully qualified class names to a directory path, and therefore does not need an #include, #ifdef, etc. (and no preprocessor as well)
David Dagon: This explains the mystery behind the error message reported when one attempts to run a file with the “.class” extension passed into the java VM:
Exception in thread "main" java.lang.NoClassDefFoundError: FooBar/class
Here, the VM looks for a file “FooBar in a folder called “class”
Also, some might argue that javadoc and doclets are types of preprocessors.