码迷,mamicode.com
首页 > 其他好文 > 详细

【基本数据类型转换】自动转换 强制转换

时间:2016-10-06 19:38:37      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:


类型装换
        long l = 123456789123;//整数默认是int类型,由于数值123456789123超过了int类型的范围,所以报错:The literal 123456789123 of type int is out of range(超出范围)
        long l2 = 123456789123l;
        int x = Integer.MAX_VALUE + 1;//将一个int类型的整数+1后赋给一个int类型的变量,虽然结果溢出,但是不会报错(因为结果仍为int类型)
        int x2 = 1l ;//必须强转,否则会损失精度,Type mismatch: cannot convert from long to int
        int x3 = (int) 1l ; 

        short s = 3;
        s += 4; //首先的首先,编译器在【编译】的时候自动进行了强转,相当于s=(short)(s+4);此后,在【运行】时,先计算s+4,此时会将s转为int类型,所以结果也为int类型,然后执行强转语句
        s = s + 4;//必须强转,否则会损失精度Type mismatch: cannot convert from int to short
        s = (short) (s + 4);
        s = s + 0;//必须强转,否则会损失精度Type mismatch: cannot convert from int to short

        short s1 = 0, s2 = 0;
        short s3 = s1 + s2;//注意s1 + s2的结果为int类型
        short s4 = (short) (s1 + s2);
        short s4 = s1 + 1;

        float f = 2.3;//浮点数默认是double类型,赋给float类型的变量时,可能会损失精度,所以编译不通过。Type mismatch: cannot convert from double to float
        float f3 = 2.3f;
        float f2 = (float) 2.3;//自己强转的话,怎么都可以

        byte b1 = 120 + 7;//120+7的结果是确定的,不会溢出,所以编译器能自动将【int】类型的数据127强转成了【byte】类型
        byte b2 = (byte) (121 + 7);//自己强转的话,怎么都可以
        byte b3 = 121 + 7;//必须强转,否则会损失精度Type mismatch: cannot convert from int to byte
        byte b4 = 127;//不会溢出编译器能自动将【int】类型的数据127强转成了【byte】类型
        byte b5 = 128;//必须强转,否则会损失精度Type mismatch: cannot convert from int to byte

        System.out.println((byte)(128));//-128,这几条数据全部溢出了,但我们强制转换了,所以编译不会报异常
        System.out.println((byte)(129));//-127
        System.out.println((byte)(255));//-1
        System.out.println((byte)(256));//0
        System.out.println((byte)(257));//1

 char类型可以自动转换为int类型数据
        char c = ‘0‘;
        byte b = ‘0‘;
        char c2 = 0;
        byte b2 = 0;
        System.out.println(1 + c);
        System.out.println(1 + b);
        System.out.println(1 + c2);
        System.out.println(1 + b2);
        System.out.println((char) 49);
技术分享





【基本数据类型转换】自动转换 强制转换

标签:

原文地址:http://www.cnblogs.com/baiqiantao/p/a2cdc8d85d9ab3f8b05f8062b525b9bf.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!