Boa noite, gostaria de tentar entender melhor essa exceção, como funciona em baixo dos panos?
1 - Quem lança a exceção e como ela é detectada? O que eu acho: A JVM lança a exceção, como ela é detectada eu já não sei
2 - NullPointerException é um erro cuja culpa é do programador?
3-O que causa essa exceção?
4 - Qual melhor jeito de evitar essa exceção?
Muito obrigado pela atenção e desculpa pela quantidade de perguntas