All of the creational patterns deal with the best way to create instances of objects. This is important because your program should not depend on how objects are created and arranged. In Java, of course, the simplest way to create an instance of an object is by using the new operator.
Object o = new Object(); //instance of an object class
This really leads to hard coding how you create the object within your program. In many cases, the exact nature of the object that is created could vary with the needs of your program. Abstracting the creation process into a special "creator" class can make your program more flexible and general.
A class creational pattern uses inheritance to vary the class that's instantiated. [GoF, "Design Patterns", Addison Wesley, ISBN 0201633612]. The main drawback of this approach is that it can require creating a new subclass just to change the class of the product. Such changes can cascade. For example, when the product creator is itself created by a factory method, then you have to override its creator as well.
An object creational pattern will delegate instantiation to another object which is responsible for knowing the class of the product objects, and it will make it a parameter of the system. [GoF, "Design Patterns", Addison Wesley, ISBN 0201633612]. They involve creating a new "factory object" whose responsibility is to create product objects.