基本数据类型
数据类型在程序语言中占有举足轻重的地位,java的数据类型可分为基本数据类型与引用数据类型
如下图
在java中想要使用一个变量,就必须先申明,此时编译程序会在未使用的内存空间中寻找一块足够能保存这个变量的空间以供这个变量使用。下图为基本数据类型的基本信息:
1.整数类型
整数类型占32位,即4字节,范围在-2147483648~2147483647,在编译器中int类型的变量赋予超出范围的数字大小就会报错。
public class TestString {
public static void main(String[] args) {
int a=99999999999999999999999;
System.out.println(a);
}
}
运行结果:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The literal 99999999999999999999999 of type int is out of range
at TestStringChangToInt.TestString.main(TestString.java:6)
结果中的“type int is out of range” 即是超出表示范围的意思。
整型数据的short类型以及long类型同理。
public class TestString {
public static void main(String[] args) {
int a=Integer.MAX_VALUE; //Integer为包装类
System.out.println("a的最大值:"+a);
a=a+1;
System.out.println("a的最大值加1,造成的结果:"+a);
}
}
/*
运行结果
a的最大值:2147483647
a的最大值加1,造成的结果:-2147483648
*/
数据溢出:
如上的代码所示,当int类型的变量最大值加1就会变成int类型的最小值,加2时就会变成次小值,即-2147483647。这就是数据的溢出。
强制类型转换:
假如int数据类型溢出,我们可以强制转换类型,避免数据的出错。
public class TestString {
public static void main(String[] args) {
int a=Integer.MAX_VALUE;
System.out.println("a的最大值:"+a);
int e=a+1;
System.out.println("a的最大值加1,造成的结果:"+e);
long d=a+1L;
System.out.println("a为整型,1加上了L为long型:"+d);//俩者相加被强制转换成long型
long c=(long)a+1;
System.out.println("强制转换a然后加1:"+c);
}
}
/*
a的最大值:2147483647
a的最大值加1,造成的结果:-2147483648
a为整型,1加上了L为long型:2147483648
强制转换a然后加1:2147483648
*/