Java does not treat packages as truly subclassing each other; while java.util
and java.util.concurrency
might look like the second is somehow part of the first, they are treated as entirely independent and the dot is mostly there for neatness.
This means you don't need to be afraid of naming your class or interface the same as another one declared in some super- or sub-package on a later date, and it also means you should really just write a couple extra lines of imports.
The reasons behind this decision, as Peter Lawrey explained, stem from Java's general lean towards simplicity. Best practice is often to never use import wildcards at all anyway.