Hi -
Ask your question a different way. Besides reading links describing how the
Java heap is allocated, and how allocated objects are partitioned for later garbage collection, perhaps the BEST way to determine what's going on is to LOOK at your actual application and SEE which part of the heap things are winding up. For example:
jmap -permstat MYPID
Here's a good article you're probably already familiar with:
http://java.sun.com/javase/6/webnotes/trouble/TSG-VM/html/memleaks.html
Here are some good, practical tips that might also be of interest:
http://www.jroller.com/agileanswers/entry/preventing_java_s_java_lang
But above all - if you don't already have JConsole and you're not already profiling your app with it - then start!
IMHO .. PSM