数据类型扩展
进制
10进制
2进制 0b 开头
8进制 0 开头
16进制 ox 开头
int i=10;
int i1= 010 ; //8进制
int i2=0x1F;//16进制 0-9 A-F
int i3=0b0010;//2进制
分割线
System.out.println("===============================================");
浮点数
float a1=0.1f;
double a2=1.0/10;
System.out.println(a1);
System.out.println(a2);
System.out.println(a1==a2);
若进行以上运行会发现
a1=0.1 ;a2=0.1 ; false 即a1不等于a2
(且若改为a2=1/10,则输出结果为0)
再看如下
float c1=2323232222222f;
float c2=c1 + 1;
System.out.println(c1);
System.out.println(c2);
System.out.println(c1==c2);
输出为
2.32323233E12
2.32323233E12
true
(若将c1数字改小,则为false)
以上两个例子可看出浮点数是有限的,离散的,大约的,接近但不等于
因而最好完全避免浮点数进行比较
bigdecimal 数学工具类(处理银行业务)
字符拓展
char d1='a';
char d2='中';
System.out.println(d1);
System.out.println((int)d1);//强制转换
System.out.println(d2);
System.out.println((int)d2);//强制转换
所有字符本质还是数字编码
Unicode 2字节 有0-65536(2^16)
U0000 - UFFFF
char d3='\u0061';
System.out.println(d3);
输出d3为 a
转义字符
\t 制表符 (两个空格)
\n 换行
等等
布尔值扩展
boolean flag5=true;//布尔值扩展
if(flag5==true){ }
if (flag5){ }
上下两种一样,下方更为精简
less is more