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: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6614974
That expression obviously has no syntax representation, it’s just an AST level transformation to simplify compilation.