Java基本数据类型转换(详解)

JAVA中,什么时候该强制类型转换?

java基本类型有8种:

    byte,short,int ,float,char,double,boolean,long

当精度大的类型转成精度小的时,需要强制转换!

    比如>>>>> double d=33.33; int a=(int)d; 因为d=33.33属于double类型,int类型比double类型精度小,所以精度大的类型转成精度小的时直接在可以强转如:int a=(int)d;在前面加上括号里面写上要强转的类型 如:int
(右边精度大于左边精度) 像类似这样的 double d=33.33; int a=(int)d;就需要强制转换!

【1】什么是类型转换: 在赋值运算或者算数运算的时候,要求数据类型一致,就要进行类型的转换。

【2】类型转换的种类: 自动转换,强制转换

【3】内存演示:

【4】代码:

public class TestVar10{
          
   
        public static void main(String[] args){
          
   
                //类型转换的两种形式:
                double d = 6;//int-->double  自动类型转换
                System.out.println(d);
                int i = (int)6.5;//double--->int  强制类型转换 (强转)
                System.out.println(i);
                
                //在同一个表达式中,有多个数据类型的时候,应该如何处理:
                //多种数据类型参与运算的时候,整数类型,浮点类型,字符类型都可以参与运算,唯独布尔类型不可以参与运算。
                //double d2 = 12+1294L+8.5F+3.81+a+true;
                double d2 = 12+1294L+8.5F+3.81+a;
                System.out.println(d2);
                /*
                类型级别:(从低到高的)
                byte,short,char-->int--->long--->float--->double
                级别用来做什么?当一个表达式中有多种数据类型的时候,要找出当前表达式中级别最高的那个类型,然后
                其余的类型都转换为当前表达式中级别最高的类型进行计算。
                double d2 = 12+1294L+8.5F+3.81+a;
                          = 12.0+1294.0+8.5+3.81+97.0
                */
                int i2 = (int)(12+1294L+8.5F+3.81+a);
                System.out.println(i2);
                /*
                在进行运算的时候:
                左=右  : 直接赋值
                左<右  :强转
                左>右  :直接自动转换
                */
                
                //以下情况属于特殊情形:对于byte,short,char类型来说,只要在他们的表数范围中,赋值的时候就不需要进行
                //强转了直接赋值即可。
                byte b = 12;
                System.out.println(b);
                byte b2 = (byte)270;
                System.out.println(b2);
                
                
                
        }
}
经验分享 程序员 微信小程序 职场和发展