Pergunta simples de incremento

Pergunta simples abaixo, está bem explicada a pegunta, mas não entendi o porquê disso.

  • > Neste código, as variáveis a e b são inicializadas para referenciar o mesmo objeto Integer com valor 3.
  • > O objeto Integer referenciado por b é incrementado para 4.
  • > Por que não é exibido o mesmo valor tanto para a quanto para b? As variáveis a e b não deveriam ter o mesmo
    valor já que referenciam o mesmo objeto?

//CODIGO:

Integer a = 3;
Integer b = a;
b++;
System.out.println(a + " " + b); //exibe "3 4"

Bem, pensando bem ‘b++’ é equivalente a “b += 1” e nesse caso um novo valor esta sendo atribuido a b e não alterando seu valor como você espera.

Se a classe Integer tivesse um metodo somar(int other) é provavel que seu exemplo funcionasse como esperado.