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.
As for internal memory management, Java has the best of the three, since it automates disposing of objects.

If your question aims at performance, C or C++ would be a better bet. You would have to do all of the memory management yourself, but at the same time wouldn't have to wait for a Garbage Collector to do it's job.  

IMO it all depends on your approach:
If you want to optimize your Application for Performance, go C or C++.
If you don't want to worry about memory management yourself, use Java.