C++ - memory unsafe, no GC.
Java - memory safe (by default), has GC.
Rust - memory safe (by default), no GC.
D - memory unsafe (by default), has GC.
Authors of Java solved memory safety by adding garbage collector. Authors of Rust managed to make memory safe language without GC while authors of D made a language with GC that is still memory unsafe.