数据类型扩展及面试题讲解
整数扩展
进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10; // 十进制
int i2 = 010; // 八进制 8
int i3 = 0x10; // 十六进制 16 0~9 A~F
浮点数扩展
float i = 0.1f;
double i2 = 1.0/10;
System.out.println(i==i2); 结果i不等于i2
float 接近但不等于 舍入误差 有限 离散 大约
少去用浮点数进行比较 如果需要进行计算不能有误差就用BigDecimal
最好完全使用浮点数进行比较
字符扩展
char b = 'a';
char b1 = '王';
System.out.println((int)b);
System.out.println((int)b1);
所有字符本质上还是数字
编码 Unicode
char b = 'a';
char b1 = '中';
System.out.println((int)b); //输出的是97是十进制
char c ='\u0061'; //61是十进制转二进制出来的结果
System.out.println(c);
转义字符
| 转义字符 | 意义 | ASCII码值(十进制) |
|---|---|---|
| \b | 退格(BS) ,将当前位置移到前一列 | 008 |
| \f | 换页(FF),将当前位置移到下页开头 | 012 |
| \n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
| \r | 回车(CR) ,将当前位置移到本行开头 | 013 |
| \t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
| \v | 垂直制表(VT) | 011 |
| \ | 代表一个反斜线字符''' | 092 |
| ' | 代表一个单引号(撇号)字符 | 039 |
| " | 代表一个双引号字符 | 034 |
| \0 | 空字符(NULL) | 000 |
| \ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
| \uhhhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 |
布尔值扩展
String i ="对";
boolean flag =ture;
if(flag==ture){ //新手
System.out.println(i);
}
if(flag){ //老手
System.out.println(i);
}

浙公网安备 33010602011771号