Design patterns are commonly used and proven designs that aid a particular design aspect i.e. Design from some1 else's experience . The core java design patterns can be commonly categorised as creational, behavioral and structural.
Creational - influences how objects are created
Behavioral - influenced the run time behavior of objects
Structural - Influences the object relationships
How to learn them? A tough Q as it will take a long time and there are some good books. Head first design patterns is not a bad start, I started and then after the first design pattern ended as my laziness got the better of me
There are no such things as "Java design patterns". There are "design patterns" and they can be written in ANY language.
there are many, many books and other resources online. "Head First Design Patterns" is a good introductory book. "Design Patterns" by the gang-of-four is pretty much considered the standard, although it's a little on the technical side. Or you can simply google "design patterns", or search the wikipedia.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors