I would also get (a lot of) people involved that know what they're talking about, who have done this before.
More specific I can't be. It depends on a number of factors, and it's not exactly something I can do for free.
Why do separate autoboxing conversions sometimes return the same reference?
Two autoboxing conversions of a primitive value p will yield an identical reference (that is, the == comparison will return true) if p is:
* true or false
* a byte
* a short or int in the range of a byte (-128 to 127)
* a char in the range of \u0000 to \u007f (0 to 127)
Note: The Java Language Specification does not explicitly guarantee this behavior for long values within the range of a byte.