You can use memory dump and then analyze it to find the process/java code in your program which is using large amount of memory. Ideally java should garbage collect the objects. But if your program is showing high memory usage then there may be a change of memory leak in your program.
You can use memory debugger to debug your program. You can use "eclipse memory analyzer" program http://www.eclipse.org/mat/