null
Uma variável de tipo não primitivo que não tenha sido inicializada, não referencia nenhum objeto. O seu conteúdo é indefinido até que lhe seja atribuído um valor.
Um valor que podemos atribuir a uma variável de qualquer tipo não primitivo é o valor null
; este é um valor especial (e é uma palavra reservada do Java) e significa “nenhum objeto”.
A declaração com inicialização:
StringBuilder sb = null;
gera um estado da memória que se pode representar assim:
O valor null
é representado por um pequeno quadrado contendo a palavra null em vez de uma seta.
Se tentarmos invocar um método sobre uma expressão cujo valor é null
, o Java lança uma exceção NullPointerException
, imprime uma mensagem de erro e termina o programa.
xxxxxxxxxx
public class Surpresa {
public static void main(String[] args) {
StringBuilder sb = null;
sb.append("Surpresa!");
}
}
A instrução sb.append("Surpresa!");
provoca a exceção:
xxxxxxxxxx
Exception in thread "main" java.lang.NullPointerException
at Surpresa.main(Surpresa.java:4)
Anterior: 8.6. Aliasing
Seguinte: 8.8. Garbage Collection