There are at least two distinct memory management models:Java (we do it for you)C++ (it is your responsibility)   I have two questions:(1) Is GC language specific or compiler specific?(2) Do most languages fall in one of these two categories? Are there other memory models in commonly used languages?The names of the language and corresponding memory management model would answer this question. 
What are the significant memory management models aside from Java (GC) and C++ (manual approach)?
java;c++;garbage collection
C++ doesn't have a manual approach to memory management at all. If you're calling free in C++, you're using it wrong. That's the C way that we're proud to be disowning.Really, the predominant models are non-deterministic (GC), deterministic (C++, D), and manual (C).