java基础---数据类型转换

1.类型转换的依据:取决于数据的取值范围,取值范围大小如下:
byte -> short -> int -> long -> float -> double
char ->在这里插入图片描述

2.注意:

(1)boolean类型不能够参与类型转换
(2)char和byte/short只有交集关系,没有子集关系

3.九种常见的数据类型转换

(1)自动类型转换

将小类型的数据转成大类型的数据, 系统会自动转换

 //自动类型转换
        float f=23;
        System.out.println(f);

(2)强制类型转换

将大类型的数据转换成小类型的数据,会编译报错
解决办法:强制类型转换
格式:目标类型 变量名 = (目标类型) 被转换的类型;

 //强制类型转换
        float f2=(float) 2.5;
        System.out.println(f2);

强制类型转换会出现的问题:
a.精度的丢失

 //(1)精度丢失
        int i=(int)2.5;
        System.out.println(i);

b.数据的溢出

 //(2)数据溢出
        byte b=(byte)129;
        System.out.println(b);

3.byte/short/char特例

当把int类型的数据赋给它们时,如果数据在它们的取值范围内,那编译会允许通过

 byte bys=35;
        System.out.println(bys);
        short sh2=25;
        System.out.println(25);
        char ch=97;
        System.out.println(ch);

4.byte/short 和 char 相互转换,都需要强制类型转换

   //byte/short 和 char 相互转换,都需要强制类型转换
        byte bts=97;
        char ch2=(char)bts;
        System.out.println(ch2);
        
        char  ch3='A';
        byte by3=(byte)ch3;
        System.out.println(by3);

5.表达式类型提升

当表达式的运算符两边类型不一致的时候,结果的类型会自动向高类型转换

  float flo1=2.3F;
        int int1=3;
      //  int result=flo1+int1;错误,相加的和是float类型
        float result=flo1+int1;

6.当byte short char 之间参与运算的时候,底层都会转换成int类型来计算

        byte by5=10;
        short ss=20;
        int ss2=by5+ss;//byte+short=int

7.boolean类型不能够参与运算和转换

 boolean bool=false;
        //byte by7=(byte)bool; 错误

8.字符串在参与运算中的转换问题,字符串相加是拼接操作

   String str="abc";
        str=str+1;
        System.out.println(str);//abc1

面试题:

计算以下结果:

System.out.println(2 + 2 + "222" + 2 + 2);//422222

9.变量计算和常量计算问题

变量相加,系统无法判断具体的结果,要在运行时才能知道
常量相加,在编译时期,系统就会运算结果

  char ch4='a';
  byte by4=1;
 // char ch5=ch4+by4;//这是错误的,变量相加系统在编译时期不知道结果是多少,无法直接赋值
  char ch5='a'+1;
//这样就对了,根据第6点可知,当byte short char 之间参与运算的时候,底层都会转换成int类型来计算,
 //所以这边'a'+1的结果是int类型,再根据第3点,byte,short,char特例,当把int类型的数据赋给它们时,
//如果数据在它们的取值范围内,那编译会允许通过.所以在这边  char ch5='a'+1;是成立的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值