整数、字符、转移字符、布尔值扩展
整数扩展
进制 二进制0b 十进制 八进制0 十六进制0x
int i = 20; //得20
int i2 = 030; //八进制0 10=8 20=16 21=17 得24
int i3 = 0x20; //十六进制0x 0~9 A~F 16 得32
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
浮点数扩展
比如说银行业务怎么表示?钱
float 有限 离散 舍入误差 大约 接近但不等于
double
最好完全使用浮点数进行比较!!!
推荐使用BigDecimal 数学工具类
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d);//false
可以看出最后的结果是false 因为是float 跟 double 比较
float f1 = 15122114151215454515f;
float f2 = f1+1;
System.out.println(f1==f2); //true
但我们都用float的话,它的结果是true 所以说:最好完全使用浮点数进行比较!!!
字符扩展
char c1 = 'a';
char c2 = '中';
int xx = 65;
System.out.println((char) xx);//强制转换 得出的是A
System.out.println(c1);
System.out.println((int)c1); //强制转换 得出的是97
System.out.println(c2);
System.out.println((int)c2);//强制转换 得出的是20013
所有的字符本质就是数字
编码 Unicode 表: 97 = a, 65 = A; 2字节 0-65536
Excel 2 16 = 65536
char a3 = '\u0061';
System.out.println(a3); //得出的结果是a
转移字符
System.out.println();
System.out.println("番茄\b,永远滴神"); //退格(BS) ,将当前位置移到前一列
System.out.println();
System.out.println("番茄\f,永远滴神");//换页(FF),将当前位置移到下页开头
System.out.println();
System.out.println("番茄\n,永远滴神");//换行(LF) ,将当前位置移到下一行开头
System.out.println();
System.out.println("番茄\r,永远滴神");//回车(CR) ,将当前位置移到本行开头
System.out.println();
System.out.println("番茄\t,永远滴神");//水平制表(HT) (跳到下一个TAB位置)
System.out.println();
System.out.println("番茄\\,永远滴神");//代表一个反斜线字符''\'
System.out.println();
System.out.println("番茄\",永远滴神");//代表一个双引号字符
System.out.println();
System.out.println("番茄\',永远滴神");//代表一个单引号(撇号)字符
System.out.println();
System.out.println("番茄\0,永远滴神");//空字符(NULL)
String sa = new String("aaa");
String sb = new String("aaa");
System.out.println(sa == sb); //false
//因为new 开辟了一个新的空间
String sa1 = "aaa";
String sa2 = "aaa";
System.out.println(sa1 == sa2);//true
布尔值扩展
boolean flag = true;
if (flag==true){ } //新手
if (flag){ } //老手