基本数据类型
1.数值类型
byte、short、int、long
float、double
2.布尔类型
boolean
3.字符类型
char
基本数据类型详解
类型 | 表示范围 | 字节数 |
---|---|---|
byte | -128~127 | 1字节 |
short | -215~215-1 | 2字节 |
int | -231~231-1 | 4字节 |
long | -263~263-1 | 8字节 |
float | -3.4E-38~3.4E38 | 4字节 |
double | -1.7E308~1.7E308 | 8字节 |
boolean | true/false | 1字节 |
char | - | 2字节 |
1字节=8B(bit),符号位占用1位,实际上boolean只占用1B
E指的是10
浮点类型详解
类型 | 符号位 | 指数位 | 尾数位 | 精度 |
---|---|---|---|---|
float(32bit) | 最左侧(31) | 30-23 | 22-0 | 7~8位10进制数 |
double(64bit) | 最左侧(64) | 62-52 | 51-0 | 15-16位10进制数 |
float说明
尾数位默认1.xxxx,省略1,只标识0.xxxx
尾数位全为1时,223 -1 =8388607 ,共7位有效数字,
再加上整数部分 224 -1 = 16777215 ,共8位有效数字
尾数位全为0时,仅整数部分为1,223=8388608 ,共7位有效数字
所以精度为7-8位10进制数
float的最大值是1.11111111111111111111111 * 2127=(2-2-23)*2127= 3.4 * 1038
引用数据类型
数组、类、接口
难点String
数据类型 | 内存位置 |
---|---|
基本数据类型 | 栈内存 |
引用类型 | 堆内存(引用值在栈内存) |
String有常量池
string引用指向,直接赋值存在栈内存,new出来的存在栈内存。
String s = “haha”;
String s = new String(“haha”);