八种基本数据类型:4种整数类型
1:4种整数类型(byte、short、int、long)
2:2种浮点类型(float、double)
3:1种字符类型“char”
4:1种布尔类型“boolean”
一:整数类型
int:4个字节 范围为-2147483648~2147483647或者-2^31到+^31-1(大约正负21亿左右)用int给变量赋值时不能超越int的取值范围。(一般数据在输入和输出基本为int类型,稍加注意。)
int a=100000000000;//超出范围,会有红线报错。
int为整数类型,顾名思义赋值时不能为小数,当然在得出结果时也不能为小数,会无条件舍去小数部分并生成整数。注(无条件舍去小数部分并不是四舍五入)
int a = 5;
int b = 2;
int c = a/b;
System.out.println(c);//结果为2
还有在做运算时,运算结果超出int取值范围时,会发生溢出,溢出并不是错误。
何为溢出?溢出就像钟表,钟表最大值是12最小值是1,当最大值12加1得出最小值1,溢出就是这个道理。溢出也似循环,一个圈嘛首位相连。
long:长整型 八个字节 范围很大大约为正负900万万亿或者-2^63到+^63-1
长整型的直接在数字最后加L或者i,一般为L,因为l与1相似度高,容易误判。
long a = 100;
long a = 100L;//d都对,只要数据不超过int类型取值范围就行,超过了必须加L/i。
注:为啥扯上int类型,因为上面说到,数据写出来只要没有转换,一般都为int类型,所以请遵循int赋值规则。
在数据之间运算时候,没有加L/i时,运算过程中可能会超出int范围,建议在第一个数字后加L/l,对数据做一个转换,在运算就不会超出范围出现溢出,当然最够结果也不能超出long的取值范围。
byte: 字节型 1个字节 范围是-128~127;
short:短整型 2个字节 范围是-32768~32767
二:浮点类型
double:浮点型 8个字节 范围巨大,为单精度浮点型,小数部分默认为double类型
不能精确数字,运算时会发生舍入误差,精确场合不能使用。
double a = 2,b=1.9;
double c = a-b;
System.out.println(c);//0.10000000000000009
float:4个字节 不能精确表现数值,上同。为单精度浮点型。
注:(含义:表明单精度和双精度精确的范围不一样。
单精度,也即float,一般在计算机中存储占用4字节,也32位,有效位数为7位;
双精度,也即double,一般在计算机中存储占用8字节,也64位,有效位数为16位。)
三:布尔类型
boolean:布尔型 1个字节 只能存true(对)/false(错);
boolean a = true;
boolean b = false;
System.out.println(a);//true
System.out.println(b);//false
四:字符类型
char:字符型 两个字节 采用Unicode编码格式,一个字符对应一个码 表现的形式是字符char,但本质上是码int (0到65535) (ASCII码:'a'----97 'A'----65 '0'----48) 字符直接量必须放在单引号中,只能有1个 特殊符号需要通过\来转义
char a = '\'';
char b = 'A';
char c = '0';
char d = 'a';
System.out.println(b);//A
System.out.println(c);//0
System.out.println(d);//a
System.out.println(c+d);//145(在运算时为int类型,数字形式。
非运算时为char类型,字符型式。)
注:特殊的:byte、short、char三种数据类型参与运算时,先一律转化为int类型;