1

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
  • 28,352
  • 13
  • 60
  • 93
lakeskysea
  • 591
  • 3
  • 8
  • 15

1 Answers1

4
i++;

is equivalent to:

i = i + 1;

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

fge
  • 119,121
  • 33
  • 254
  • 329
Eng.Fouad
  • 115,165
  • 71
  • 313
  • 417