Java基本数据类型自动转换规则
Java基本数据类型自动转换规则
Java的基本数据类型
Java提供了八种基本类型,包括数字类型(整形、浮点型),字符类型和布尔型。
-
整型: short, int, long, byte 浮点型:float, double 字符型:char 布尔型:boolean
Java中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或操作系统的改变而改变。
自动转换规则
- 布尔型不参与转换
- 转换规则(总): byte/char/short -> int -> long -> float -> double
- 转换规则(详) 3.1 操作数之一为double,则另一个操作数先被转化为double,再参与算术运算; 3.2 操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算; 3.3 操作数均不为double或float,当操作数之一为long,则另一操作数先被转换为long,再参与算术运算; 3.4 操作数均不为double、float或long,则操作数先被转换为int,再参与运算。
- 特殊: 4.1 如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。 4.2 当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char类型不发生改变;
几道面试题
- 精确浮点数计算一般使用哪个类 BigDicemal
- Java的char能否存汉字 当然可以 Java的char类型占两个字节,存的是Uicode码,其中就包含了汉字。
- 如下代码有什么问题
public static void main(String[] args) { short s1 = 1; /* s1+1运算时会自动转换为int型 赋值给short型会报错 Type mismatch: cannot convert from int to short 需要强制类型转换 */ s1 = (s1 + 1); /* += 系统会自动强制将运算结果转换为short类型 */ s1 += 1 ; }
下一篇:
ChatGPT镜像来了,体验核心能力