byte,short, int ,long
byte,1个字节,
1个字节,最小的存储单元,-128< ~ 127,默认值为0。
其中-128为[1000 0000],不存在原码,计算机中存储的是补码
short,2个字节
-32768 ~ 32767,不常用。
int,4个字节
最常用,默认数据类型,-2^31-1~2^31 (21 亿)。
long,8个字节
通常用于数据库大表的id进行存储。
存储模型:存储的是补码
float , double
float:4个字节
double:8个字节,最常用,默认
存储模型:指数存储
从左到右是从低位到高位,而在计算机内部是采用逆序存储的。
备注
float、double并不能准确表示每一位小数,对于有的小数只能无限趋向它。
故在运算过程中可能出现2.00-1.10 = 0.8999999999999999 等情况
使用注意事项
程序中应尽量避免浮点数的比较
float、double类型的运算往往都不准确
float , double缺陷问题
float只能用来进行科学计算或工程计算,在大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算。
Char,String
char
2个字节,其本质为int类型;显示时候,是经过处理的
String
不是基本数据类型
boolean
true 真 和 false 假
总结
byte |
short |
int |
long |
float |
double |
char |
boolean |
1 |
2 |
4 |
8 |
4 |
8 |
2 |
1 |
-128~127 |
+-32万 |
+-21亿 |
|
-3.403E38~3.403E38 |
-1.798E308~1.798E308 |
|
True false |