Exemplo útil de um gancho de desligamento em Java?

Estou tentando garantir que meu aplicativo Java tome medidas razoáveis ​​para ser robusto, e parte disso envolve o desligamento normal. Estou lendo sobre ganchos de desligamento e na verdade não entendo como utilizá-los na prática. Existe um exemplo prático por aí? Digamos que eu tenha um...