数据类型拓展及面试
整数拓展进制:二进制(0b)、八进制(0)、十进制、十六进制(0x)
int a = 0b10; int b = 010; int c = 10; int d = 0x10; System.out.println("二进制"+a); System.out.println("八进制"+b); System.out.println("十进制"+c); System.out.println("十六进制"+d); 结果:二进制2 八进制8 十进制10 十六进制16 123456789101112 浮点数拓展
比较金额时不要用float或double,选用BigDecimal(数学工具类);
浮点数是有限的、离散的,存在舍入误差问题,结果是大约数
float a = 0.1f; double b = 0.1; System.out.println(a==b); float x = 111111111111111111111111f; float y = x+1; System.out.println(x==y); 结果:falsetrue 12345678 字符拓展
字符也可以转换成数字,本质都是二进制,在Unicode编码表中字符和数字有对应关系
char a = 'a'; char b = '中'; System.out.println("a:"+(int)a); System.out.println("b:"+(int)b); 结果:a:97b:20013 123456
char c = '\u0051'; System.out.println("c:"+c); 结果:c:Q 123
转义字符
\t 制表符
\n 换行
System.out.println("Hello\tWord); 结果:HelloWord System.out.println("Hello\nWord); 结果:HelloWord 12345
希望在码农的山坡上越攀越高,欢迎各位大佬看官的指正及补充