八大数据类型
Java是强类型语言分为基本数据类型和引用数据类型:
基本数量类型
-
整数类型
- byte 1个字节
- short 2个字节
- int 4个字节
- long 8个字节
-
浮点类型
- float 4个字节
- double 8个字节
引用数据类型
String:引用数据类型
大转小可以自动转换,小转大需要强制转换,但是会损失精度
基本数据类型的取值范围以及大小:
整数类型:byte<short<int<long
浮点类型:float<double
测试一下
1 class Demo{ 2 public static void main(String[] args){ 3 byte num1 = 2; 4 int num2; 5 num2 = num1; 6 System.out.println(num2); 7 } 8 }
编译结果:
说明大转小可以正常转换,然后才是小专大
1 class Demo{ 2 public static void main(String[] args){ 3 byte num1; 4 int num2 = 2; 5 num1 = num2; 6 System.out.println(num1); 7 } 8 }
编译结果:
直接编译报错
现在我们尝试强制转换
1 class Demo{ 2 public static void main(String[] args){ 3 byte num1; 4 int num2 = 2; 5 num1 = (byte)num2; 6 System.out.println(num1); 7 } 8 }
编译结果
编译通过
byte取值范围为-128~127,尝试一下数值越界问题
1 class Demo{ 2 public static void main(String[] args){ 3 byte num1; 4 int num2 = 400; 5 num1 = (byte)num2; 6 System.out.println(num1); 7 } 8 }
编译结果
直接变成负数了,说明不行,大转小需要注意数值越界的问题
浮点类型和整数一样,不过会损失精度,
1 class Demo{ 2 public static void main(String[] args){ 3 double num1 = 3.1315; 4 int num2; 5 num2 = (int)num1; 6 System.out.println(num2); 7 } 8 }
编译结果为:
自动舍去小数位了,所以说浮点类型强转整数类型会损失精度!