表达式类型的自动提升
来源:互联网 发布:workbanch 导出mysql 编辑:程序博客网 时间:2024/06/07 14:41
当算术表达式包含多个基本数据类型时,整个算术表达式的数据类型会在数据运算时出现类型的自动提升。
- 所有的 byte, short, char 会自动提升为int类型。
Double d1 = 123+ 1.1F + 99L + 3.14 ;
123 是 整数(int);
1.1F是 浮点型(float);
9.9L 是 长整形(long);
3.14是 浮点型(double)
从左到右运算:
1. 123 + 1.1F = 124.1F
Int +float = float
2. 124.1F + 99L = 223.1F
float + long = float
- 223.1F + 3.14 = 226.24
float +double = double ;
最终的结果是 226.24 , 是double类型的。所以整个表达式的结果和类型是: 226.24 和 double。
样例一:
public class Hello
{
publicstatic void main(String[] args)
{
System.out.println('A'+1); //结果为:66。
//因为char类型直接被转换为 int类型。
}
}
样例二:
1.
public class Hello
{
publicstatic void main(String[] args)
{
bytenum = 15 ;
//输出完成 (耗时 0 秒) -正常终止
}
}
2.
public class Hello
{
publicstatic void main(String[] args)
{
byte num = 15 ; //因为num是byte,byte的取值范围包括15,所以编译时编译器在最底层偷偷的进行了转换。
num = num + 3 ; //Hello.java:6:错误:可能损失精度
//因为 num是 byte类型 3是int类型 int比byte大,所以需要强制转换。
//因为这不属于编译了,而是属于运行阶段: num + 3 = 18 18也在byte的取值范围内,因为属于运行阶段所以会被报错。 然而上面的15不被报错的原因是因为当时处于编译阶段,所以不会被报错。
//num+3要运行起来才能得出结果18。
}
}
- 表达式类型的自动提升
- 表达式类型自动提升
- java表达式中类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- Java -- 表达式类型的自动提升
- java表达式类型的自动提升
- JAVA表达式类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- Java 表达式类型的自动提升
- Java表达式类型自动提升
- java学习个人笔记---表达式类型的自动提升
- 【Java学习3.5.3】表达式类型的自动提升
- 2017 10 04小结
- 使用synchronized的注意点
- 显式类型转换
- PAT 甲级 1079. Total Sales of Supply Chain (25)
- 停课总结(二)
- 表达式类型的自动提升
- C语言版Hello world
- Mysql常用sql方法
- tyvj P1463 智商问题(分块)
- Java并发编程 02 volatile 关键字
- hdu 1213 并查集
- Flask + Gunicorn + Nginx 部署
- 初识Django
- < 笔记 > Java SE