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: 
Java has memory management. C and C++ don't, so it's memory management is a function of the programmer.
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).