1、Java数据类型分为两类:
(1)、基本数据类型(四类八种):byte(1字节)、char( 1字节 )、short(2 字节 )、int(4 字节 )、long( 8 字节 )、float(4 字节)、double(8 字节)、boolean(在Oracle公司的虚拟机实现中,占一个字节,在Java虚拟机规范中无明确规定)
(2)、引用数据类型:类、接口、数组
2、类型转换
(1)、自动类型转换(隐式):数据范围小的自动向范围大的转换,编译器自行处理
int a = 10;
long b = 20L;
b = a; √
a = b; 编译出错
(2)、强制类型转换(显式):大---->小,需要自己进行处理
int a = 10;
long b = 20L;
a = (int)b; √
PS:(1)、字面常量进行赋值时,Java会自动对数字范围进行检查
byte a = 128; ---->超过了byte的数据范围(-128~127),编译错误
(2)、不相干的类型不能转换(int 和boolean等)
3、类型提升
不同类型的数据相互运算时,数据类型小的会被提升到数据类型大的
int 和 long ------>int被提升为long
byte 和 byte
byte b = 10,c = 20;
int a = b + c;
计算机CPU通常是按照4个字节为单位从内存中读取数据,因此比4字节低的类型(byte、short)会先被提升为int再进行计算