All that Java guarantees is that an int is 32 bits (4 bytes), so that you can store integer numbers with values between -2^31 and 2^31 - 1 in it.
If the JVM which you are using actually uses 4 bytes of memory, is something you don't know. On some computers it might for example take 64 bits because that's more efficient on that specific type of computer. However, if the JVM behind the scenes uses 64 bits, that doesn't mean you can suddenly store larger numbers in an int.
From the Java programmer's perspective, an int is always 32 bits. But how the JVM handles ints under water might be different. [ August 02, 2007: Message edited by: Jesper Young ]