数据类型拓展及面试题
数据类型拓展及面试题
1.整数拓展:二进制 八进制 十进制 十六进制
int a = 0b10; //二进制前面有0b a=2
int b = 010; //八进制前面有0 b=8
int c = 10; //十进制正常写 c=10
int d = 0x10; //十六进制前面有0x d=16
2.浮点数拓展:银行业务怎么表示?
float 有限 离散 舍入误差 大约 接近但不等于
最好完全避免使用浮点数进行比较 可以使用BigDecimal
float f = 0.1f;
double d1 = 0.1;
System.out.println(f == d); //false
float f1 = 2333333332233333f;
float f2 = f1 + 1;
System.out.println(f1 == f2); //true
3.字符拓展:字符本质上是数字
char c1 = 'a';
char c2 = '获';
System.out.println(c1);
System.out.println((int) c1); //97
System.out.println(c2);
System.out.println((int) c2); //33719
// unicode U0000~UFFFF
char c3 = '\u0061';
System.out.println(c3); //a
String s1 = new String("Hello world!");
String s2 = new String("Hello world!");
System.out.println(s1 == s2); //false
String s3 = "Hello world!";
String s4 = "Hello world!";
System.out.println(s3 == s4); //true