Every package, class, interface, array type, and primitive type has a fully qualified name. It follows that every type except the null type has a fully qualified name.
boolean, char, byte, short, int, long, float, or double.
.", followed by the simple (member) name of the subpackage.
.", followed by the simple name of the class or interface.
[]".
long is "long".
java.lang is "java.lang" because it is subpackage lang of package java.
Object, which is defined in the package java.lang, is "java.lang.Object".
Enumeration, which is defined in the package java.util, is "java.util.Enumeration".
double" is "double[]".
String" is "java.lang.String[][][][]".
package points;
class Point { int x, y; }
class PointVec {
Point[] vec;
}
the fully qualified name of the type Point is "points.Point"; the fully qualified
name of the type PointVec is "points.PointVec"; and the fully qualified name
of the type of the field vec of class PointVec is "points.Point[]".