In Sun' tutorial it says about a byte:
byte: The byte data type is an 8-bit signed two's complement integer. It has a minimum value of -128 and a maximum value of 127 (inclusive). The byte data type can be useful for saving memory in large arrays, where the memory savings actually matters. They can also be used in place of int where their limits help to clarify your code; the fact that a variable's range is limited can serve as a form of documentation.
How does it save memory? What is 2's compliment?
解决方案
It saves memory by consuming only eight bits of storage, versus 32 for integers. The size of arrays is directly proportional to the size of the contained datatype; an array of integers will consume about four times more memory (handwaves) than an array of bytes.
A two's-complement system or
two's-complement arithmetic is a
system in which negative numbers are
represented by the two's complement of
the absolute value;1 this system is
the most common method of representing
signed integers on computers.[2] In
such a system, a number is negated
(converted from positive to negative
or vice versa) by computing its two's
complement. An N-bit two's-complement
numeral system can represent every
integer in the range −2^(N−1) to
+2^(N−1)−1.