Ironically, C memory leaks are often significantly easier to debug than Java ones. In C, libraries like libumem basically do postmortem GC that can point straight to the leaking callstack (depending on how much debug info you can tolerate).
In GC'd languages, there's no real way for the VM to identify a leak.
In GC'd languages, there's no real way for the VM to identify a leak.