in java every class is represented by a Class object. This object knows about the methods, fields and constructors (see the API description for Class). forName() is a static method of the Class class (huh :-) ) e.g.
gives you a reference to the Class object for String (use fully qualified names). If you call
you get a reference to an object of type java.lang.String. the Class object comes in handy when you want to get information about class or dynamically create objects (e.g with names you read from a property file)