To save memory, java doesn�t create new object for any of the following values; it does mean that the values within this rages are referred to by same object. It is very similar to String object where two similar string objects is referred by only one object in the String pool.
Value ranges are as follows; int, short -128 to 127 boolean true or false char \u0000 to \u007f
Good as I explained with the greatest wrapper to receive is true with 127 above that will always be false. Unless you use the method equals (). Now I do not understand why the line below is true? This result is a rule or was a coincidence?