Java_语法基础01_数据类型转换

数据类型转换

  • 基本数据类型(8种)
    在这里插入图片描述
  • 隐式类型转换
    ①存储整数数据时,Java中所有的整数默认都是int类型。如果在byte类型中存储数据,该范围为-128~127,JVM会把这个int类型的数据自动转换成byte类型,然后存放在byte空间中。short同理
    ②自动转换:容量小的类型可自动转为容量大的类型
    byte,short,char → int → long → float → double
    ③byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型
  • 强制类型转换
    容量大的类型转换成容量小的类型时,需要强制转换
    例:byte b=(byte)5;//将int类型5强制转换为byte类型并存储在b中
class Demo01{
    /*基本数据类型*/ 
    public static void main(String[] args){
        /*数值型整数类型 byte short int long 整型常量默认为int类型*/
        
        //隐式类型转换
        byte b1=5;//虽然5为int类型,但是其范围在byte之内,所以可以正常编译运行,超出范围必须强转
        System.out.println(b1);//5
        /*
        0000 0000 0000 0000 0000 0000 0000 0101
                                      0000 0101
        */

        //强制类型转换
        //byte b2=200; 不兼容的类型: 从int转换到byte可能会有损失
        //System.out.println(b2);
        byte b2=(byte)200;//将int类型200强制转换为byte型存放在b2中
        System.out.println(b2);//输出-56,结果错误,因为存储空间容量不一样,精度损失
        byte b3=6;
        //byte b4=b1+b3;//不兼容的类型: 从int转换到byte可能会有损失
        byte b4=(byte)(b1+b3);
        byte b5=5+6;
        System.out.println(b4);//11
        System.out.println(b5);//11

        //short 同理;
        //int
        int i1=Integer.MAX_VALUE;
        System.out.println(i1);//2147483647
        int i2=1;
        int i3=i1+i2;//-2147483648
        //如果后期在计算数据时 虽然用的int也会有数据溢出的问题
        System.out.println(i3);
        
        //long l1=1000000000000000000000000000L;
        //数字过大 BigInteger BigDecimal


        //数值型浮点类型 float double 浮点型常量默认是double类型
        float f1=3.14F;
        double d1=3.14;
        System.out.println(3.15e3);//3150.0
        double d2=d1+f1+i3+b4;
        System.out.println(d2);//-2.147483630719998E9
    }
}
  • 注意:
    当存储的数据超过byte和short范围时,开辟空间存放会发生编译时错误,如上述变量b2所示,同样把无法在编码表中查到对应字符的数据存放到char空间也会报错。
class Demo02{
    public static void main(String[] args){
        char c1='a';
        char c2=97;//int类型97,编码表中查找对应的字符并存放在c2空间中
        System.out.println(c1);//a
        System.out.println(c2);//a
        System.out.println(c1+0);//97,int类型4字节,char类型2字节
        System.out.println('0'+0);//48,char——>int,自动转换为int
        System.out.println('0'+9);//48+9=57
        //a 97
        //A 65
        //0 48
        System.out.println((char)('0'+9));//'9',int——>char,强制转换
        System.out.println((char)6331);//?
        System.out.println('我'+0);//25105,可以查找编码表中对应的数值
        System.out.println((char)25106);//戒
        System.out.println((char)25107);//戓
        //UTF-8 ISO GBK GB3102 Unicode 都是基于ASCII
        System.out.println('\u0061');//a
        boolean b1=true;
        boolean b2=false;
        //布尔类型只能参与逻辑运算
        boolean b3=b1&b2;
        System.out.println(b3);//false
        String s1="abcd";
        String s2="ABCD";
        String s3=s1+s2;// + 多态 当为字符串类型是表示连接符
        System.out.println(1+2);//3
        System.out.println("1"+"2");//12
        System.out.println(1+2+3+"4");//64
        System.out.println("1"+(2+3+4));//19
        //System.out.println("我爱你"*10);
        System.out.println(s1.toUpperCase());//转换字符串为大写
        System.out.println(s2.toLowerCase());//转换字符串为小写
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值