对数据基本类型的强制转换,自动转换的理解
2017-08-12 11:53
288 查看
在遇到数据转换时,总会很容易的忽略掉数据之间的转换问题,是否可以得到正确的结果。现总结如下:
如 byte b=3; b=b+2则会报错,因为2为int类型的。无法向下强制变为byte类型。
而 byte b=3; int a=b+1;则因为将b自动提升到int类型而得到结果 a=4;
如 byte b=3; b=(byte)b+1; 当然如果结果溢出肯定是会报错的。
这是因为计算机会将s+=3看成s=(左边的数据的类型)s+3。从而得到正确的结果。
这一实例一般是右边为赋值的。
1.小范围向大范围自动提升
不同类型的数据,一般都是以小范围朝大范围方向自动提升的。可以理解为大范围的精度比小范围大,或者说是位数比较多。如 byte b=3; b=b+2则会报错,因为2为int类型的。无法向下强制变为byte类型。
而 byte b=3; int a=b+1;则因为将b自动提升到int类型而得到结果 a=4;
2.大范围向小范围强制转换
若要还原回byte类型,则需要强制转换。如 byte b=3; b=(byte)b+1; 当然如果结果溢出肯定是会报错的。
3.自动转换(比较有意思和有特点的,也比较容易忽略的)
前面提到,short s=5; s=s+3是会报类型错误的。而s+=3则会得到结果s=8;这是因为计算机会将s+=3看成s=(左边的数据的类型)s+3。从而得到正确的结果。
这一实例一般是右边为赋值的。
相关文章推荐
- 3.16 基本数据类型转换(自动转换\强制转换)
- day03 可以互相转换的基本数据类型的自动转换和强制转换
- Java数据类型的转换:隐式(自动)转换与强制转换
- 10_基本数据类型自动转换_强制转型_类型提升问题
- Java数据类型转换(自动转换和强制转换)
- Java数据类型转换(自动转换和强制转换)
- java语言基础(59)——jdk5自动装箱和拆箱(基本数据类型与包装类之间的转换)
- JAVA数据类型自动转换,与强制转换
- java基本数据类型自动转换
- 数据类型的自动转换和强制转换
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(5):服务器端和客户端数据类型的自动转换:基本类型和枚举类型
- JAVA——基本数据类型之间的自动转换
- 牛客网Java刷题知识点之基本类型的自动转换和基本类型的强制转换
- 1.为什么需要继承?如何继承?继承到什么? 2.方法的重载与重写的区别 3.类型的自动转换和强制转换 4.子类特有的方法的调用规则 5.子类重写的方法的调用规则 6.多态的理解 7.面向对象的三大特征
- Java数据类型的转换:隐式(自动)转换与强制转换
- java学习之旅10--基本数据类型自动转换_强制转型_类型提升问题
- 黑马程序员—Java基础学习笔记之数据类型转换(自动转换和强制转换)
- 【Java基础之数据类型转换】数据类型自动转换和强制转换、及相关常见面试题(如return (short)x / y* 2; 的返回类型)
- 8种基本数据类型和运算(隐式转换和强制转换)
- java基本数据类型与字符串之间的转换(基本数据类型、对象封装类、自动装箱、自动拆箱)