String type deserves a entire subchapter because it is a bit more than a type. Indeed, it is an object (in the sense of object-oriented programming).
Objects come with special properties and functions. Properties and functions are available natively because
String is now a part of the Arduino core and can be seen as a pre-existing entity even if your IDE contains no line.
Again, the framework takes care of things for you, providing you a type/object with powerful and already coded functions that are directly usable.
Check out http://arduino.cc/en/Reference/StringObject in the Arduino website.
We talked about definition for variables, but objects have a similar concept called construction.
String objects, ...