Question: I just wanted to know which language has better memory management among C,C++ and Java,why is it so and it is based on what criteria? 

I know that Java uses garbage collection for freeing memory and C uses DMA functions.Does this make java better at memory management since it's handled automatically? I do not know C++ so I don't have much idea there,though I know it uses destructors and delete.

Any suggestions/ideas will be grately appreciated.

Answer: 
Thats a apples to oranges question in my book. C/c++ don't have memory management at least not in the language thats your job. That being said java will allocate and destroy memory for you all the live long day but at the cost of control. For the standard business app this is not at issue. You are going to load some bloated 3rd party code either way, but when it counts you have more power in c/c++. You also have more power to shoot yourself in the foot.
Java and C# have both garbage collection. This is a good thing because the programmer has less problems with memory management, and can concentrate on other problems. In C and C++ you must manually manage memory - for this you need much time and patience and experience.
JVM's garbage collector is fast enough, hence you almost don't feel the difference between time execution of C++ programs vs Java programs(C++ is supposed to be faster than java).