views:

492

answers:

3

Will Java's int always and everywhere be a 32 bit signed integer?

+28  A: 

Yes, it's defined in The Java Language Specification.

From Section 4.2: Primitive Types and Values:

The integral types are byte, short, int, and long, whose values are 8-bit, 16-bit, 32-bit and 64-bit signed two's-complement integers, respectively, and char, whose values are 16-bit unsigned integers representing UTF-16 code units (§3.1).

And additionally from Section 4.2.1: Integral Types and Values:

The values of the integral types are integers in the following ranges:

  • For byte, from -128 to 127, inclusive
  • For short, from -32768 to 32767, inclusive
  • For int, from -2147483648 to 2147483647, inclusive
  • For long, from -9223372036854775808 to 9223372036854775807, inclusive
  • For char, from '\u0000' to '\uffff' inclusive, that is, from 0 to 65535
coobird
Beat me to it ;)
laginimaineb
Excellent info :-)
joe
+3  A: 

Yes

laginimaineb
+1  A: 

ints are 32 bits. Should you need more, longs are 64 bits.

drRoflol