Java_数据类型转换及细节

目录

一、自动类型转换

1、介绍

2、自动类型转换图

​3、案例演示

4、细节

二、强制类型转换

1、介绍

2、案例演示


一、自动类型转换

1、介绍

当Java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,

这就是自动类型转换。

2、自动类型转换图

Java_数据类型转换及细节3、案例演示

int a = 'c';//输出99
double d = 80;//输出80.0

4、细节

 4.1 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。

int n1 = 10;
float d1 = n1 + 1.1;//错误   n1 + 1.1 => 结果类型是double
double d1 = n1 + 1.1;//修改01
float d1 = n1 + 1.1F;//修改02

Java_数据类型转换及细节

 4.2当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换。

int n2 = 1.1;//错误  double => int

4.3(byte,  short) 和 char 之间不会相互自动转换

char c1 = 'a';
byte n1 = c1;

Java_数据类型转换及细节

        byte n1 = 10;
        char c1 = n1;

Java_数据类型转换及细节

 (short同) 

4.4byte, short, char   他们三者可以计算, 在计算时首先转换成 int 类型

        byte b1 = 10;
        short s1 = 20;
        short s2 = s1 + b1;//改为  int s2 = s1 + b1;
        System.out.println(s2);

Java_数据类型转换及细节

 4.5boolean 不参与转换

        boolean pass = true;
        int num1 = pass;
        System.out.println(num1);

Java_数据类型转换及细节 

4.6自动提升原则

表达式结果的类型自动提升为 操作数中最大的类型;

        byte b1 = 10;
        short s1= 20;
        int n1 = 30;
        double d1 = 40;
        int num1 = b1 + s1 + n1 + d1 ;
        System.out.println(num1);

Java_数据类型转换及细节

二、强制类型转换

1、介绍

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符  ( ), 但可能造成精度降低或者溢出,格外要注意。

2、案例演示

        int n1 = (int)1.9;
        System.out.println(n1);//输出1  造成精度损失

        int n1 = 2000;
        byte b1 = (byte)n1;
        System.out.println("b1="+ b1);//输出-48     造成数据溢出

上一篇:程序员鄙视链至今还存在,你为什么还想不通?


下一篇:学习bat语法