数据类型扩展及面试题讲解
public class Demo3 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010; //八进制"0"开头
int i3 = 0x10; //十六进制0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=============================================");
//=====================================================================
//浮点拓展? 银行业务怎么表示钱?
//BigDecimal 数学工具类
//=====================================================================
//float 有限 离散 舍入误差 大约 接近但不等于
//doubule
//最好不要使用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0 / 10; //0.1
System.out.println(f == d); //false,两数不相等,浮点型会缺失精度,使用BigDecimal 数学工具类表示银行的钱
float d1 = 2321641352135121f;
float d2 = d1 + 1;
System.out.println(d1 == d2); //true
//=====================================================================
//字符拓展?
//=====================================================================
System.out.println("=============================================");
char c1 = 'A';
char c2 = '中';
System.out.println(c1);
System.out.println((int) c1);
System.out.println(c2);
System.out.println((int) c2);
//所有字符本质还是数字
//编码 Unicode 表:(97=a 65=A) 占2字节 0~6536 Excle表格最长只有2^16=65536
// U0000到UFFF(Unicode区间范围)
System.out.println('\n');
char c3 = '\u0061'; //16进制转10进制,最后为97
System.out.println(c3); //a
//转义字符
// \t 制表位 table键
// \n 换行
// ...
System.out.println("hello \n world");
System.out.println("=============================================");
String sa = new String("hello,world");
String sb = new String("hello,world");
System.out.println(sa == sb);
String sc = "hello,world";
String sd = "hello,world";
System.out.println(sc == sd);
//对象 从内存分析
//布尔值拓展
boolean flag = true;
if (flag == true) {
} //新手
if (flag) {
} //老手
//代码精简易读 Less Is More!
}
}