首先,int如果转成十进制来说就是最大值和最小值范围 “-2147483648 ~ 2147483647”
:
Modifier and Type | Constant Field | Value |
---|---|---|
public static final int | MAX_VALUE | 2147483647 |
public static final int | MIN_VALUE | -2147483648 |
public static final int | SIZE | 32 |
一个字节有8位,我们来看看一个位
能表示多少个状态,计算机只认二进制,也就说只有0和1来表示状态:
那8个位能表示多少?
计算机为了区分正负数,所以把256个状态一半分给了负数,-128 ~ 127
也是256个数,因为8位里面拿走一个位
用来表示正负,所以只能表示最大127。
那么:
在JAVA中一共有八种基本数据类型,它们分别是 byte、short、int、long、float、double、char、boolean
。
byte
、short
、int
、long
都是表示整数的,只不过他们的取值范围不一样。-128 ~ 127
,占用1
个字节(-2的7次方到2的7次方-1); -32768 ~ 32767
,占用2
个字节(-2的15次方到2的15次方-1) ;(-2147483648 ~ 2147483647)
,占用4个字节(-2的31次方到2的31次方-1) ;(-9223372036854774808 ~ 9223372036854774807)
,占用8个字节(-2的63次方到2的63次方-1);我们先看在内存中的开销 :
int i=1;
在内存存蓄中就是以00000000 00000000 00000000 00000001
这种形态存蓄。
byte j = 1;
是 00000001
我们需要一个中规中矩通用的一个取值范围,就是int了,可以看到byte
和short
的取值范围比较小,而long
的取值范围太大,占用的空间多,因此,基本上int
可以满足我们的日常的计算了。
在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的B
,如:35B,表示它是byte型的,同样的35S
表示short型,35L
表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。