Garbage Collection and Local Variable Type-Precision and Liveness in Java Virtual Machines