数据类型扩展及面试题讲解

/*整数拓展,关于进制
二进制(以0b开头) ;十进制;八进制(以0开头);十六进制(以0x开头)

/
int i1 = 10;//十进制,输出结果就是10;
int i2 = 010;//八进制,满8进1,输出结果是8;
int i3 = 0b10;//二进制,满2进1,输出结果是2;
int i4 = 0x10;//十六进制,满16进1,输出结果是16;
int i5 = 0x11;//十六进制,满16进1,输出结果是17;
System.
out.println(i1);
System.
out.println(i2);
System.
out.println(i3);
System.
out.println(i4);
System.
out*.println(i5);

//浮点数扩展:银行业务如果用float和double计算是有问题的,下面举例说明

​ float f = 0.1f;
​ double d = 1.0/10;//理论上f=d=0.1
​ System.out.println(fd);//表示判断f和d是否相等,输出是true或者false

//输出结果是false

​ float d1 = 232323232323f;
​ float d2 = d1+1;
​ System.out.println(d1==d2);

//输出结果是true,因为float是存在舍入误差的,处理位数有限
//如果想要计算没有误差,要使用Bigdecimal
//字符扩展:把字符强制转换成数字类型

​ char c1 = 'a';
​ char c2 = '中';
​ System.out.println(c1);
​ System.out.println((int)c1);//把c1字符转换成整数输出
​ System.out.println(c2);
​ System.out.println((int)c2);//把c2字符转换成整数输出

//所有字符本质上还是数字
//原因是:用的unicode编码,有一个表范围是从0-2(16次方),即0-65536,97=a,65=A
//转义字符
// 制表符\t(即输出一个空格)
// 换行\n

​ System.out.println("Hello\tworld");//即输出Hello world

//对象,从内存分析下面为啥不相等

​ String sa = new String("Hello,world");
​ String sb = new String("Hello,world");
​ System.out.println(sasb);//输出为flase
​ String sc = "Hello,world";
​ String sd = "Hello,world";
​ System.out.println(sc
sd);//输出为true

// 布尔值扩展

​ boolean flag = true;
​ if(flag==true){}
​ if(flag){}//这两行代码意思是相同的,只不过下面省略简写了,代码要精简易读

posted @ 2025-04-02 17:08  琬六岁  阅读(20)  评论(0)    收藏  举报