Every Java programmer knows that package names are used to eliminate name conflicts. There are two classes called
Date in the standard library, but of course their real names are
java.sql.Date. The simple name is only a programmer convenience and requires the inclusion of appropriate
import statements. In a running program, all class names contain their package names.
It might surprise you, however, that you can have two classes in the same virtual machine that have the same class and package name. A class is determined by its full name and the class loader. This technique is useful for loading code from multiple sources. For example, a browser uses separate instances of the applet class ...