数据类型扩展以及面试题
整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
public class Demo03 {
public static void main(String[] args) {
int i = 9; //十进制
int i2 = 010; //八进制,表示8
int i3 = 0x10; //十六进制,表示16 0~9 A~F表示10~15 0x10表示16 0x11表示17
int i4 = 0xF;
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
}
}
浮点数拓展
//浮点数拓展
//=======================================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数float进行比较
//最好完全避免使用浮点数float进行比较
//最好完全避免使用浮点数float进行比较
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); //判断f是否等于d,等于显示true,否则显示false
float d1 = 213213213213f;
float d2 = d1 + 1; //d2肯定不等于d1
System.out.println(d1==d2); //再次判断d1是否等于d2,结果为true
//这是因为float数据类型是有限的、离散的、舍入误差的,因此银行业务一定不要使用float类型
//而应该使用BigDecimal 数学工具类
字符型拓展
//===================================================
//字符拓展
//===================================================
char c1 = 'a';
char c2 = '董';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
//强制转换后的结果为数字 97 和数字 33891,这说明了所有的字符本质上还是数字
//编码 Unicode(表:97 = a,65 = A) 2字节 长度范围:0——65536
//Unicode编码格式
//U0000 UFFFF
char c3 = '\u0061';
System.out.println(c3);//输出结果为 a
关于转义字符
//===================================================
//转义字符
//===================================================
// \t 制表符
// \n 换行符
// \b 退格
// \r 回车
// \\ 反斜杠
// \? 问号字符
// \' 单引号字符
// \'' 双引号字符
System.out.println("Hello\tWorld"); //制表符
System.out.println("Dong\nJinjun"); //换行符
System.out.println("这是一个\r回车符号"); //回车符
System.out.println("这是一个反斜杠符号\\"); //反斜杠符
System.out.println("这是一个单引号字符:\'"); //单引号字符
System.out.println("这是一个双引号字符:\''"); //双引号字符
字符串类型的骚操作
//关于字符串类型的骚操作
String sa = new String("Hello World");
String sb = new String("Hello World");
System.out.println(sa==sb); //显示结果为false
String sc = "Hello World";
String sd = "Hello World";
System.out.println(sc==sd); //显示结果为true
//为什么会有不相同的结果呢? 这就要从对象,从内存进行分析了
布尔值拓展
System.out.println("================================");
//布尔值拓展
boolean flag = true;
if(flag==true){} //新手写法:代码可读性高
if(flag){} //老手写法:代码比较精简
// less is more