OK, you are obviously new to this topic. I want to second much of what has been said in the answers here.
I know there are three different design patterns in java. 1) Creational 2) Structioral and 3) Behavioral.
First off, the "patterns" you describe aren't patterns at all, they are
categories if patterns. Each has numerous patterns within them. You can't compare them to say "which is best", but you can form an opinion about "which is best for my task".
How we can we select a pattern to design a project?
Generally you don't: you apply development patterns (such as you descibed) to features within code. You might want to apply an
architectural pattern to a project, but you shouldn't start with the idea "I want to use pattern
X to write this project", what you should think is "My project needs to so this, so architectural pattern X is a good idea". The same is true of all pattern types, the needs should dictate the pattern, your shouldn't start with the pattern and force it into your needs.
Is it possible to choose more than one pattern in a single project design.
Absolutely. You apply each pattern as needed, it is even possible to hybridise patterns.
Finally I'd like to say this. Design patterns fulfill two primary functions:
- They provide a common nomenclature as a shorthand for a design idea to allow developers to communicate, e.g. I could say "I think this data access stuff would be best wrapped up in a proxy [patter]"
- They provide well-understood solutions to common problems
As Christian said, they aren't a magic bullet and they won't suddenly improve your code. Knowing them provides a short-cut to providing a solution to a particular problem so they are worth looking at. If you have done any amount of serious coding you have probably implemented something close to a recognised pattern already. My advice is to find an easy-to-read article on a few basic patterns and implment them yourself.