In java, is an int guaranteed to always be of 32bit size and a long of 64bit size regardless of whether the architecture is 32 or 64 bit?
Java is platform independent. So int
is 32-bits, and long
is 64-bit.
The Java Tutorial page on primitive data types specifies the fixed sizes and makes no mention of underlying architecture having any influence
int: The int data type is a 32-bit signed two's complement integer. It has a minimum value of -2,147,483,648 and a maximum value of 2,147,483,647 (inclusive).
long: The long data type is a 64-bit signed two's complement integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807 (inclusive). Use this data type when you need a range of values wider than those provided by int.
int
in Java is always 32-bit. No matter the OS type/architecture/whatever.