Java 中三大类数据类型
字符型
char
布尔型
boolean
数值型
1.整型:byte、short、int、long
2.浮点型:float、double
String 不是基本数据类型,是引用类型。
整型中 byte 、 short 、 int 、 long 的取值范围
Java 中的整型主要包含 byte、short、int 和 long 这四种,表示的数字范围也是从小到大的,之所以表示范围不同主要和他们存储数据时所占的字节数有关。
先来个简答的科普,1 字节=8 位(bit)。java 中的整型属于有符号数。
先来看计算中 8bit 可以表示的数字: 最小值:10000000 (-128)(-2^7) 最大值:01111111(127)(2^7-1) 具体计算方式参考:
Java 中,为什么 byte 类型的取值范围为-128~127?
整型的这几个类型中:
byte:byte 用 1 个字节来存储,范围为-128(-2^7)到 127(2^7-1),在变量初始
化的时候,byte 类型的默认值为 0。
short:short 用 2 个字节存储,范围为-32,768 (-2^15)到 32,767 (2^15-1),
在变量初始化的时候,short 类型的默认值为 0,一般情况下,因为 Java 本身转型的原因,
可以直接写为 0。
int:int 用 4 个字节存储,范围为-2,147,483,648 (-2^31)到 2,147,483,647 (2
^31-1),在变量初始化的时候,int 类型的默认值为 0。
long:long 用 8 个字节存储,范围为-9,223,372,036,854,775,808 (-2^63)
到 9,223,372,036, 854,775,807 (2^63-1),在变量初始化的时候,long 类型的默认值
为 0L 或 0l,也可直接写为 0。
上面说过了,整型中,每个类型都有一定的表示范围,但是,在程序中有些计算会导致
超出表示范围,即溢出。如以下代码:
int i = Integer.MAX_VALUE;
int j = Integer.MAX_VALUE;
int k = i + j;
System.out.println("i (" + i + ") + j (" + j + ") = k (" + k + ")");
输出结果:i (2147483647) + j (2147483647) = k (-2)
这就是发生了溢出,溢出的时候并不会抛异常,也没有任何提示。所以,在程序中,使
用同类型的数据进行运算的时候,一定要注意数据溢出的问题。
评论