Java对于表达式中的自动类型提升
来源:互联网 发布:mysql 截断字符串 编辑:程序博客网 时间:2024/06/07 16:00
需要注意的Java基础整形类型
Java整数默认是int类型,例如:byte a = 56;(系统会将56赋值给一个byte变量),long bigValue = 9999999999999999;(这个时候系统不会赋值给long变量,而是赋值给了int变量,因为存放不下而报错), 只能这样存放long bigValue = 999999999999999L;
Java语言使用的Unicode字符集作为编码方式,Java的一个char字符变量是一个16位无符号的整数,与C语言中的Char占8位有区别。
Java语言浮点型默认是double类型,如果希望把一个浮点型值当成float类型处理,应该这样写float f = 5.12f;
Java语言还提供了3个特殊的浮点数值:正无穷大(POSITIVE_INFINITY)、负无空大(NEGATIVE_INFINITY)、非数(NaN);一个正数除以0将得到正无穷大,一个负数除以0将得到负无穷大,0.0除以0.0或对一个负数开方将得到一个非数。
1.表达式中的自动类型提升:
表达式求值时,Java自动的隐含的将每个byte、short或char操作数提升为int类型,这些类型的包装类型也是可以的。
例如:short
s1+1运算中的操作数s1会被自动提升为int类型,s1+1运算结果会成为int类型,再赋值给short类型的s1时,编译器会报告需要强制转换类型的错误。需要改为short s1=1; s1=(short)(s1+1);结果就是short类型。
例如:short
+=是java语言中的运算符,Java编译器会对它特殊处理进行正确的编译。
2.类型提升规则:
byte、short和char类型的值都被提升为int类型;
如果有一个操作数是long类型,就将整个表达式提升为long类型;
如果有一个操作数是float类型,就将整个表达式提升为float类型;
如果任何一个操作数为double类型,结果将为double类型。
例如:
byte b=1;
char c='a';
short s=1024;
int i=50;
float f=2.0f;
double d=.123;
double
f*b中,b被自动提升为float类型,该表达式结果是float类型;
i/c中,c被自动提升为int类型,该表达式结果是int类型;
d*s中,s被自动提升为doubl类型,该表达式结果是double类型;
最后,float+int-double,结果会被提升为double类型,double类型为最后结果result的类型。
- Java对于表达式中的自动类型提升
- Java对于表达式中的自动类型提升
- Java表达式类型自动提升
- JAVA中的自动类型提升
- java表达式中类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- Java -- 表达式类型的自动提升
- java表达式类型的自动提升
- JAVA表达式类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- java表达式类型的自动提升
- Java 表达式类型的自动提升
- 表达式类型自动提升
- Python中的tuple
- sql 语句查询今天、昨天、近7天、近30天、一个月内、上一月 数据
- R语言之逐步回归
- 内存,cache,buffer
- jstl 标签 循环 序号
- Java对于表达式中的自动类型提升
- Java实现UDP通信
- jQuery取得select选中的值
- 动态磁盘转基本磁盘
- Java的层次结构
- udp报头格式及其结构体
- 拷贝构造函数浅拷贝深拷贝
- aauto学习系列之<12>枚举与迭代
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)