整数拓展:
进制 二进制 0b 十进制 八进制0 十六进制0x
int i = 10;//十进制10
int i2=010;//八进制 8
int i3=0x10;//十六进制16 十六进制从 0-9 A-F 16
浮点数拓展 :
最好完全避免使用浮点数进行比较,而要通过BigDecimal来比较
浮点数拓展,银行业务如何表示?
float 表示的数据有限 离散 舍入误差 大约 接近但不等于
BigDecimal 数学工具类
不要用float和double进行浮点数比较,而要同通过BigDecimal来比较
典型案例:
float f = 0.1f //0.1
double d=1.0/10 //0.1
但是d != f
float a1 = 2635565;
float a2 = a1+1;
但是a1 == a2 这就是浮点的bug
字符拓展:
所有字符本质还是数字,通过Unicode的编码方式,将字符编译为数字,每个字符都一一对应。
以'u0061','u0068',十六进制数,这种形式编码,编码范围U0000~UFFFF
Unicode编码方式 占2个字节,长度0~65523 即2的16次方
char b3=''u0061; //会输出a
因为 字符‘a’输出数字是97,97转换为十六进制为61,于是由编码u0061就可以输出字符‘a’
字符‘中’ 输出数字为20013,20013转化为十六进制数为4E2D,于是由编码u4E2D就可以输出字符‘中’
char b1= 'a';
char b2 ='中';
System.out.println(b1); //a
System.out.println((int)b1); //输出97 强制转换,将char类型转换为int类型
System.out.println(b2);
System.out.println((int)b2);//输出 20013 强制转换,将char类型转换为int类型
转义字符:
转义字符 意义 ASCII码值(十进制) a 响铃(BEL) 007 b 退格(BS) ,将当前位置移到前一列 008 f 换页(FF),将当前位置移到下页开头 012 n 换行(LF) ,将当前位置移到下一行开头 010 r 回车(CR) ,将当前位置移到本行开头 013 t 水平制表(HT) (跳到下一个TAB位置) 009 v 垂直制表(VT) 011 代表一个反斜线字符“” 092 ' 代表一个单引号(撇号)字符 039 " 代表一个双引号字符 034 空字符(NULL) 000 ddd 1到3位八进制数所代表的任意字符 三位八进制 xhh 1到2位十六进制所代表的任意字符 二位十六进制 转义字符:System.out.println("Hello\nWorld");