Bra att veta är att följande två event gör att java vm stängs ner:
Citat:
The program exits normally, when the last non-daemon thread exits or when the exit (equivalently, System.exit) method is invoked, or
The virtual machine is terminated in response to a user interrupt, such as typing ^C, or a system-wide event, such as user logoff or system shutdown.
Från dokumentationen av Runtime.addShutdownHook
D v s att returnera från main() räcker inte nödvändigtvis för att avsluta programmet om det finns andra trådar igång.