Java数据类型以及数据类型转换

八大数据类型

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 }

编译结果为:

自动舍去小数位了,所以说浮点类型强转整数类型会损失精度!

猜你喜欢

转载自www.cnblogs.com/robinson-coding/p/12524546.html