整数类型:byte short int long
整数类型种默认为int
整数类型各自取值范围:
数据类型 | 占用存储空间 | 存储范围 |
byte | 1字节 | -27~27-1 |
short | 2字节 | -215~215-1 |
int | 4字节 | -231 ~ 231-1 |
long | 8字节 | -263~263-1 |
1 class Var08{
2 public static void main(String[ ] args) {
3 //byte
4 byte a = 1; //注意:在JAVA中,当对byte short char类型赋值时,如果没有超出该类型取值范围则可以直接赋值
5 a = 5;
6 a = -128;
7 //a = 128; //出现编译错误,因为超出byte类型取值范围
8 System.out.println("a = " + a);
9
10 //short
11 short b =128;
12 b = -32768;
13 //b = 32768; //出现编译错误,超出short类型取值范围
14 //解决办法:只能找一个比该类型范围大的类型存储该值
15 System.out.println("b = " +b);
16
17 //int
18 int c = 0;
19 //c = 12345678901; //出现编译错误。超出int类型范围
20 System.out.println("c = " +c);
21
22 //long
23 long d = 6; //注意:在Java中,取值范围小的类型可以直接赋给取值范围大的类型,构成自动类型转换
24 d = 12345678;
25 //d = 12345678909; //出现编译错误,因为值默认为int,超出int取值范围
26 //解决方法:将右侧的值后面添加L或l,此时该值就为long,也就是说该值就为long类型
27 d = 12345678909L; //没有构成自动类型转换
28 System.out.println("d = " +d);
29 }
30 }
在JAVA中,当对byte short char类型赋值时,如果没有超出该类型取值范围则可以直接赋值
在Java中,取值范围小的类型可以直接赋给取值范围大的类型,构成自动类型转换
long d = 6; //构成自动类型转换
d = 12345678909; //出现编译错误,因为值默认为int,超出int取值范围
解决方法:将右侧的值后面添加 L 或 l ,此时该值就为long,也就是说该值就为long类型
d = 12345678909L; //没有构成自动类型转换