数据类型拓展及面试
程序员文章站
2022-05-06 17:24:15
...
数据类型拓展及面试
整数拓展
进制:二进制(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
浮点数拓展
比较金额时不要用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);
结果:false
true
字符拓展
字符也可以转换成数字,本质都是二进制,在Unicode编码表中字符和数字有对应关系
char a = 'a';
char b = '中';
System.out.println("a:"+(int)a);
System.out.println("b:"+(int)b);
结果:a:97
b:20013
char c = '\u0051';
System.out.println("c:"+c);
结果:c:Q
转义字符
\t 制表符
\n 换行
System.out.println("Hello\tWord);
结果:Hello Word
System.out.println("Hello\nWord);
结果:Hello
Word