数据类型拓展及面试题讲解
1. 整数
public class Demo { public static void main(String[] args) { //整数拓展: 进制 二进制 0b 八进制 0 十进制 十六进制 0x int i=10; int i2=010; //八进制0 int i3=0x10; //十六进制0x System.out.println(i); System.out.println(i2); System.out.println(i3); } }
结果:
10 8 16
2. 浮点型
public class Demo { public static void main(String[] args) { //============================================================== //浮点数拓展 银行业务怎么表示?钱 //BigDecimal 数学工具类 //============================================================== //float 有限 离散 舍入误差 大约 接近但不等于 //double //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 float f=0.1f; //0.1 double d=1.0/10; //0.1 System.out.println(f); System.out.println(d); System.out.println(f==d);//false float d1=2321321321312f; float d2=d1+1; System.out.println(d1==d2);//ture } }
结果:
0.1 0.1 false true
3. 字符
public class Demo { public static void main(String[] args) { //============================================================== //字符拓展 //============================================================== char c1='a'; char c2='云'; System.out.println(c1); System.out.println((int)c1);//强制转换 System.out.println(c2); System.out.println((int)c2);//强制转换 //所有的字符本质还是数字 //编码 Unicode 2字节 0 - 65536 Excel 2 16 =65536 // U0000 UFFFF char c3='\u0061'; System.out.println(c3);//a // 转义字符 // \t 制表符 // \n 换行 } }
结果:
a 97 云 20113 a
4. 拓展 内存分析
public class Demo { public static void main(String[] args) { //对象 从内存分析 String sa=new String("hellow world"); String sb=new String("hellow world"); System.out.println(sa==sb); String sc="hello world"; String sd="hello world"; System.out.println(sc==sd); } }
结果:
false true
5. 布尔
public class Demo { public static void main(String[] args) { //布尔值类型 boolean flag = true; if (flag = true) {}//新手 if (flag) {}//老手 //less is More 代码要精简易读 } }