八种基本类型:
byte、short、int、long、float、double、boolean、char
byte 字节型 占用1个字节 范围-128到127
short 短整型 占用2个字节
int 整型 占用4个字节 范围-21亿多到21亿多
整数默认为int类型 不能超出范围否则会编译错误
两个整数相处结果还是整数、小数位无条件舍弃不会四舍五入
运算超出范围会出现溢出 需要避免
int a=25; //int b=10000000000 编译错误 //int c=2.33 编译错误,数据类型不匹配 System.out.println(5/2)//2 小数点后无条件舍弃 int a1=2000000000; a2=a1+100000000//会发生溢出结果
long 长整型 占用8个字节 范围很大很大很大
长整型后直接量需要加数字L或者l
long a=23L;
int运算发生溢出时建议第一个数字后面加L
long a=1000000000*2*10L System.out.println(a)200亿 long b=1000000000*3*10L System.out.println(b)//不是300亿 long f=10000000000L*3*10 System.out.println(f)//是300亿
double :浮点型 八个字节 很大很大很大
浮点数默认值为double型 若想使用float需要在数字后加F或f
double a=2.3; float b=2.3f;
double和float运算时会有误差,精确场合不能使用
boolean: 布尔型 1个字节
只返回true或者float
boolean a=true; boolean b=false; boolean c=33;//编译错误,数据类型不匹配
char :字符型 2个字节
采用Uniode编码格式 一个字符对应一个码
ASCLL码 'a'-97 'A'-65 '0'-48
char a='你'//字符你 char b='h'//字符h char c='6'//字符6 char a1=' '//空格符 char a2='你好'//编译错误 只能一个字节 char a3='\'//输出 为转义符
类型之间的转换 由大到小 byte、short、int、long、flat、double、boolean、char
转换的两种方式 :
自动/隐式类型 :小类型转大类型
强制转换: 大类型转小类型 注意强转可能溢出或丢失精度;
long a=2;//2自动转换为int类型 int c=(int)a;//因为 a的数据类型是long需要强转 double b=4.9; int d=(int)b;//输出4小数点后无条件舍弃 会丢失精度 long x=10000000000L; int q=(int)x;会发生溢出;
两点规则 整数直接量可以给 byte short char赋值 但是不能超出范围
byte short char 参与运算的时候自动转换为int类型



