2

I know Integer is immutable in Java. But I tried this:

Integer i = 4;
i++;
System.out.println(i); // output is 5

Why the self-increment is still working? Did Java create a new Integer object?

FThompson
  • 27,808
  • 11
  • 55
  • 91
lakeskysea
  • 571
  • 3
  • 8
  • 15

1 Answers1

4
i++;

is equivalent to:

i = i + 1;

which i now refers to a different Integer object (5).

fge
  • 114,841
  • 28
  • 237
  • 319
Eng.Fouad
  • 111,301
  • 67
  • 311
  • 403