Read this to get a high level overview of the factory pattern. It's not really very complicated, a factory method is in charge of creating instances of an object rather than the client calling a constructor directly. There are a few reasons why you might want to do this. For example, if an object's constructor needs to do something "dangerous" like connecting to a web server (which may fail). Or if you want to grab an object of a particular abstract class, super class or interface but let the factory decide the subclass or implementing class. I'm sure the design gurus here will expand on this, but I'm fairly sure this is what you're talking about.
Like Crusty said, it's not Java-specific, it's a high-level design pattern.