No jshell-11, por que uma variável de referência redeclarada que redefine para nulo ainda tem um tip

Quando redeclarando o número inteiro 'a' na linha 33, por que o jshell mostra a variável de referência como uma instância do número inteiro (consulte as linhas 38 e 39)? Após a redeclaração, a linha 34 mostra que 'a' está definido como nulo. Quando 'a' é declarado na linha 6, mas não recebe um valor ou redefine para nulo na linha 22, 'a' não é considerado uma instância de Inteiro. Eu esperaria que, quando a variável de referência for declarada novamente, já que seu valor é nulo, ela não seria uma instância de um tipo; no entanto, esse não é o caso.

01: java-lava:~ cafedude$ jshell
02: |  Welcome to JShell -- Version 11
03: |  For an introduction type: /help intro
04: 
05: jshell> Integer a;
06: a ==> null
07: |  created variable a : Integer
08: 
09: jshell> a instanceof Integer;
10: $2 ==> false
11: |  created scratch variable $2 : boolean
12: 
13: jshell> a = 1;
14: a ==> 1
15: |  assigned to a : Integer
16: 
17: jshell> a instanceof Integer;
18: $4 ==> true
19: |  created scratch variable $4 : boolean
20: 
21: jshell> a = null;
22: a ==> null
23: |  assigned to a : Integer
24: 
25: jshell> a instanceof Integer;
26: $6 ==> false
27: |  created scratch variable $6 : boolean
28: 
29: jshell> a = 1;
30: a ==> 1
31: |  assigned to a : Integer
32: 
33: jshell> Integer a;
34: a ==> null
35: |  modified variable a : Integer
36: |    update overwrote variable a : Integer
37: 
38: jshell> a instanceof Integer;
39: $9 ==> true
40: |  created scratch variable $9 : boolean

questionAnswers(2)

yourAnswerToTheQuestion