数据类型拓展
整数拓展
进制
二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010; //八进制0
int i3=0x10; //十六进制0x 0~9 A~F
十六进制:0~9、A、B、C、D、E、F,共 16 个符号 → 满 16 进 1
其中:
A=10,B=11,C=12,D=13,E=14,F=15
只要某一位加到等于或超过 16,就往左边进 1,本位归零。
举几个最简单的例子
- 十六进制 F(就是 15)再加 1
F + 1 = 10(十六进制的 10,等于十进制的 16) - 十六进制 1F 再加 1
1F + 1 = 20 - 十六进制 FF 再加 1
FF + 1 = 100
浮点数拓展
//float
//double
银行业务怎么表示钱?
不可使用float,因为float(有限、离散)具有“舍入误差”的特性,该特性会导致结果四舍五入,接近但不等于,结果会是一个大约数
因此最好完全避免使用浮点数进行比较
该问题应使用BigDecimal 数学工具类
字符拓展
char c1='a';
char c2='中';
System.out.println(c1);//a
System.out.println((int)c1);//97
System.out.println(c2);//中
System.out.println((int)c2);//20013
//强制类型转换后c1与c2的结果会被转化为unicode中对应的数字 2^16=65536
//U0000 UFFFF
char c3='\u0061';//a
转义字符
\t 制表符
\n 换行
String sa=new String("helloworld");
String sb=new String("helloworld");
System.out.println(sa==sb);//false
String sc="helloworld";
String sd="helloworld";
System.out.println(sc==sd);//true
//地址问题导致结果不同
布尔值拓展
boolean flag=true;
//以下两个if用意相同
if(flag==ture){} //
if(flag){} //
less is more 代码要精简易读
纸上得来终觉浅,绝知此事要躬行

浙公网安备 33010602011771号