java数据类型
整数类型
类型常量 十进制: 如 99, -500, 0 八进制: 要求以 0 开头, 如: 015 十六进制: 要求 0x 或 0X开头 , 如: 0x15 二进制: 要求0b或者 0b开头, 如: 0b11
类型变量
类型 存储需求 取值范围 int 4字节 -2147483648 ~ 2147483647 short 2字节 32768 ~ 32767 long 8字节 -9223372036854775808 ~ 9223372036854775807 byte 1字节 -128~127
浮点类型
- 类型常量 十进制: 3.14 413.0 0.314 科学计数
- 类型变量
float: 4字节, 有效位数(6 ~ 7 左右)
double: 8字节, 有效位数(15 ~16 左右) 关于浮点数在机器中存放的形式:浮点数=符号位 + 指数位 + 尾数位 尾数部分可能丢失,造成精度损失double num11 = 2.7;
double num12 = 8.1 / 3; // 2.7
if(num11 == num12) {
System.out.println('相等?')
}
if(Math.abs(num11 - num12) < 0.00001) {
System.out.println('差值非常小,认为相等')
}
System.out.println(Math.abs(num11 - num12));
字符类型
- Char: 2字节, 存放单个字符 'a';
- Char 的本质是一个整数;
- 存储: 'a' ==> 码值97 ==> 转二进制(110 0001)
- 读取: 二进制(110 0001) ==> 97 ===> 'a' => 显示
char c1= 97;
System.out.println(c1); // a
char c2 = 'a';
System.out.println((int)c2); // 97
char c5 = 'b' + 1;
System.out.println((int)c5); // 99
System.out.println(c5); // 'c'
布尔类型
- Boolean: 1字节 存放 true , false;
基本数据类型转换
自动类型转换
Char => int => long => float => double
Byte => short => int => long => float => double
int n1 = 10;
float d1 = n1 + 1.1; // error n1 + 1.1 => 结果类型是double
float d2 = n1 + 1.1F; // 正确当吧进度打的数据类型肤质给精度小的数据类型时,就回报错
Byte, short 和 char 之间不会自动转换
Byte,short,char 三者之间可以计算, 计算时首先转换为int类型
byte b1 = 1;
short s1 = 100;
int n1 = 1;
double n2 = 1.1;
// 表达式结果自动提升为 操作数种最大的类型
double sum = b1 + s1 + n1 + n2;
引用数据类型
- class (类):
- Interface (接口):
- [] 数组: