How memory is fragmented.

This would be useful and/or nice to know…
class A creates an instance of class B, which in turn creates and destroys a hole bunch of objects and crap, which (probably) fragments the memory. But what if class A is deleted, (set to null, goes out of scope or whatever), will the entire block of memory occupied by class A be free and unfragmented? Do objects created within a class occupy a certain block of memory what so ever, or are they created where ever the kvm finds the first block with enough free space? Or should I just look for a detailed paper on memory usage in cell-phones.