In this code example, the ExecutorService is used one and allowed to go out of scope.
public static void main(String[] args) { ExecutorService executorSe
Finalizers are too unpredictable. Depending on them is usually bad practice. You can read more about it in "Effective java" by Joshua Bloch (item 1.7)