一、基本类型数据 四类八种
- 整数型:
byte 字节类型 1
short 2
int 4
long 8 声明时末尾+L/l
- 浮点类型(小数):
float 4
double 8
- 字符型:
char 2
- 布尔型:
boolean:ture false
注意:
1. 若赋值大于 byte 和 short 范围,则会将此值作为int类型处理
2. 整形默认数据类型为int
3. float 和 double 类型默认数据类型为double
4. 浮点类型不能精确表示一个小数,使用后面的内容Bigdecimal
二、引用类型数据
- 字符串
三、自动类型提升: 低精度向高精度
小的数据类型 转换为 大的数据类型
简单理解:
小容器放到大容器里,正常输出。
byte --> short --> int --> long --> float --> double
char -->
特别的:char类型由int类型输出时,输出为字符的ASSCII码。
四、强制类型转换
大的数据类型 转换为 小的数据类型
简单理解:
若没有转换,数据会损失。即,大容器放进小容器自然就溢出了。
double d = 3.14;
int num = (int) d;//输出 3
int i = 200;//00000000 00000000 00000000 11001000
byte a = (byte)i;//1个字节 存8个比特位
//11001000原码
//10110111反码
//10111000补码 输出-56
float n = 3.14f//double类型需强制类型转换为float类型,加f或者F才能正常输出
注意:
-
浮点型 转换为 整形 会丢失小数。
-
byte 与 byte ,short 与 short ,char 与 char,或者混合做运算的结果是int类型
short i = 10;
short n = 20;
n = i + n;//会报错,因为没有转换数据类型
n += i;//赋值的形式不会报错
System.out.println(i + n);//直接输出不报错