The default package has no name. All classes and interfaces that are not preceded by a package sentence, and that are in the same directory are placed in the same default package. That is, every directory has two packages the default an the package ends up with the same name as its directory. However you should not use the default package except for testing purposes. The classes that are in a named package must be placed in a directory path that reflects the package names. The parent directory of this directory structure must be placed in the classpath , otherwise the compiler/JVM won't find the classes in that package. Now, are you asking about "public package"? packages cannot have access modifiers, so in that sense all of them are public. The top level classes and interfaces in a package can be friendly or publicly accessed.
I think your question might be what's the difference between public accessibility and default (a.k.a) package accessibility???
here's a quick list from A Programmer's Guide to Java Certification: public - Accessible everywhere protected - Accessible by any class in the same packae as its class, and accessible only by subclasses of its class in other packages default(no modifier) - Only accessible by classes, including subclasses, in the same package as its class (package accessibility). private - Only accessible in its own class and not anywhere else.
I always remember the default (modifier) by stating that it provides package accessibility (see Mughal's Java Cert. book). default (no modifier): Only accessible by classes, including subclasses, in the same package as its class (package accessibility).
Sun Certified J2EE Architect for the J2EE Platform (Part 1)<br />Sun Certified Web Component Developer for the J2EE Platform<br />Sun Certified Programmer for the Java 2 Platform