Java has already at least a few low latency GCs to choose from:
- Azul C4 GC, which is commercial, highly optimized and was available for many years already
- ZGC
https://wiki.openjdk.java.net/display/zgc/Main which is included in Java 11
- Shenandoah
https://wiki.openjdk.java.net/display/shenandoah/Main which is going to be included in Java 12
AFAIK at least Shenandoah GC works on Windows.
Java guys are working on reducing overhead of calling to native code and implementing value types, including vectors (SIMD) types with corresponding instructions that will map well to low level instructions (like SSE, AVX, etc). These are goals of two (highly connected) projects:
http://openjdk.java.net/projects/panama/ and
http://openjdk.java.net/projects/valhalla/ Expect that the performance gap between pure Java code and pure C++ code will be getting significantly smaller.
Despite already implemented low-latency GCs and future low-level optimizations (SIMD instructions, value types, etc), I don't think Java will replace C as a language to write libraries used by everyone. Every popular language can talk with libraries that expose C API, but talking with Java libraries is usually reserved to other Java-based code.