The explaination given for deprication of runFinalizersOnExit in System class is that "It may result in finalizers being called on live objects while other threads are concurrently manipulating those objects, resulting in erratic behavior or deadlock". But the finalizers are supposed to be called only when the
Java runtime exits. The confusion I have is once the java runtime exits we should not have any live objects hence the aboue case should not arise or have i missed some details. Please help.