Generally speaking, why does it exist?
It exists for autoboxing as Google suggests.
If you have code like this:
Integer foo = 0;foo++;
Java internally makes this into this helper expression:
Integer foo = 0;let int foo_helper = foo.intValue() in foo_helper++;
Source: https://bugs.java.com/bugdatabase/view_bug?bug_id=6614974
That expression obviously has no syntax representation, it's just an AST level transformation to simplify compilation.