The best explanation I can give you is that they are formalized "approaches" to solving non-trivial problems that crop up quite frequently in programming.
when to use those ?
Whenever you have a need.
I am java beginner
should I go for head first design patterns book ?
I'd say probably not just yet; you don't want to overload your brain with too much too soon. Learn the language thoroughly first; then get a book on design patterns. As for Head First, I'm afraid I can't say; their Java book is pretty good, but it doesn't always mean that other titles are. One advantage of getting it might be that it "follows on" from Head First Java nicely. Alternatively, there is the grandaddy of them all.
Does this book enables us to learn more object oriented concepts ?
Not directly, but it'll probably help to cement some of the principles - specifically: abstraction and problem isolation.
"Leadership is nature's way of removing morons from the productive flow" - Dogbert
Articles by Winston can be found here