From Java package naming conventions @ Wikipedia (emphasis added):
Packages are usually defined using a hierarchical naming pattern, with
levels in the hierarchy separated by periods (.) (pronounced "dot").
Although packages lower in the naming hierarchy are often referred to
as "subpackages" of the corresponding packages higher in the
hierarchy, there is almost no semantic relationship between packages.
The Java Language Specification establishes package naming conventions
to avoid the possibility of two published packages having the same
name. The naming conventions describe how to create unique package
names, so that packages that are widely distributed will have unique
namespaces. This allows packages to be separately, easily and
automatically installed and catalogued.
In general, a package name begins with the top level domain name of
the organization and then the organization's domain and then any
subdomains, listed in reverse order. The organization can then choose
a specific name for its package. Package names should be all lowercase
characters whenever possible.
For example, if an organization in Canada called MySoft creates a
package to deal with fractions, naming the package ca.mysoft.fractions
distinguishes the fractions package from another similar package
created by another company. If a German company named MySoft also
creates a fractions package, but names it de.mysoft.fractions
, then
the classes in these two packages are defined in a unique and separate
namespace.
Complete conventions for disambiguating package names and rules for
naming packages when the Internet domain name cannot be directly used
as a package name are described in section 7.7 of the Java Language
Specification.
See also: