Java语言是强类型语言,强类型包含俩方面的含义:
- 所有变量必须先声明,后使用。
- 指定类型的变量只能接受类型与之匹配的值。
Java语言支持的类型分为俩类:基本类型(Primitive Type)和引用类型(Reference Type)。
- 基本类型包括:boolean类型和数值类型【byte sort int long char float double】
- 引用类型包括:类,接口,数组类型,null(空引用)
基本类型的类型转换
- 自动类型转换:将小瓶水倒入大瓶中,不会有任何问题。
- 强制类型转换:大瓶水倒入小瓶中,会造成溢出(数据丢失);语法格式为(targetType)value;也被称为缩小转换(Narrow Conversion)。
关于表达式类型的自动提升
规则如下:
- 所有byte、short、char类型将被提升到int类型
- 整个算术表达式的数据类型自动提升到与表达式中最高等级操作数相同的类型。等级如上图所示
示例1:
//定义一个short类型变量
short sValue = 5;
//表达式中将sValue自动提升至int类型,则右边表达式的值为int类型
//将int类型的值赋值给short类型变量,引起数据类型不匹配报错
sValue = sValue - 2;
示例2:
byte b = 40;
char c = 'a';
int i = 23;
double d = 3.14;
//右边表达式最高等级操作数为 d;double类型
//则右边表达式的类型为double,故赋值给一个double的变量
double result = b + c + i * d;