基本类型
在java里有八种基本类型及每一种类型都对应了一种包装类
- 在了解基本数据类型之前需要说一下,java的所有类型的字节大小都和平台没有关系。
- 所有整型没有无符号概念。
short(短整型)
- short 占用 2 个字节, 表示的数据范围是 -32768~32767
- 因为范围比较小,不是必须的话,不推荐使用。
使用示例
short value = 10;
System.out.println(value);
注意事项
short a = 10;
short b = 20;
short c = a + b;
System.out.println(c);
当运行这段代码的时候会出现报错。
即使short 和 short 都是相同类型, 但是会出现编译报错. 原因是, 虽然 a 和 b 都是 short变量, 但是计算 a + b 会先将 a 和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误
正确的写法
short a = 10;
short b = 20;
short c = (short)(a + b);
System.out.println(c);
给a+b的表达式强制转换为short类型则不会报错。
byte(字节类型)
- 字节类型也属于整型的一种,不过它的字节大小是1,取值范围是-128~127
使用示例
byte value = 10;
System.out.println(value);
注意事项
- byte类型和short类型都是低于4个字节,在运算时均会发生数值提示的现象,使用时需要更加注意
- 因为范围比较小,不是必须的话,不推荐使用。
int( 整型)
使用示例
int num = 10; // 定义一个整型变量
System.out.println(num) ;
- 在java中int类型就是4个字节,跟系统无关。
- 由于在java中是没有无符号整型概念的,所以int的取值范围是 -2^31 ~ 2^31-1。
以下代码可以查看int的数据范围。
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE); // int 的最大值
System.out.println(Integer.MIN_VALUE); // int 的最小值
}
运行截图
如果运算的结果超出了int的取值范围,则数据就会溢出
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE+1); // int 的最大值加1会溢出
System.out.println(Integer.MIN_VALUE-1); // int 的最小值-1会溢出
}
运行截图
有细心的读者会发现,int所表示的最大值加1溢出后变成了最小值,而最小值减1后变成了最大值,我们可以把类型范围表示看成一个圆形
中间的是分界线,如果超过了最大值则就变成了最小值,这种概念可以应用与所有的整型类型。
long(长整型)
对于int能表示21亿,这样的数字对于当前大数据时代来说,是很容易溢出的,针对这种情况, 我们就需要使用更大范围的数据类型来表示了. Java 中提供了 long 类型.
使用示例
long num = 10L; // 定义一个长整型变量, 初始值写作 10l 也可以(小写的 L, 不是数字1).
System.out.println(num) ;
- 需要注意的是初始化设定的值为 10L ,表示一个长整型的数字,10l 也可以.
- 使用 10 初始化也可以, 10 的类型是 int, 10L 的类型是 long, 使用 10L 或者 10l 更好一些.(这里推荐用大写的L,因为有些字体小写的l可能容易被看成数字1)
- java中long占8个字节,取值范围在 -2^63 ~ 2^63-1
使用以下代码查看 Java 中的长整型数据范围
public static void main(String[] args) {
System