Java数据类型拓展
整数拓展:关于进制
//整数拓展:进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010; //八进制0
int i3 = 0x10; //十六进制0x
System.out.println(i); //10
System.out.println(i2); //8
System.out.println(i3); //16
浮点数拓展:关于计算
//浮点数拓展:银行业务(钱)怎么表示?
//最好完全不使用浮点数进行比较,因为float和double是有限的离散的,有舍入误差,只能得到一个大约的结果,接近但不等于。所以不能使用这两个数据类型进行计算
//所以目前使用
//举两个例子
float f=0.1f; //0.1
double d=1.0/10; //0.1
System.out.println(f==d); //"=="询问两者是否相等 //false
System.out.println(f);
System.out.println(d);
float d1=2342323441f;
float d2=d1 + 1;
System.out.println(d1==d2); //true
字符拓展
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1); //强制表示为数字
System.out.println(c2);
System.out.println((int)c2); //强势表示
//所有的字符本质上还是数字
//编码 Unicode 表:(97=a 65=A之类的)
//U0000 UFFFF
char c3='\u0061'; //这就是常见的Unicode编码形式 // \u是转义字符
System.out.println(c3); //输出了a
//转义字符
// \t 制表符
// \n 换行
//......
补充(暂时不用懂)
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
//对象 从内存分析
布尔值拓展
boolean flag=true;
if (flag==true){} //新手
if (flag){} //老手
//Less is More 代码要精简易读
注意点
- 二进制0b开头,八进制0开头,十六进制0x开头
- “==”询问两者是否相等
- 各种各样的转义字符
- System.out.println((int)c1); 强制将c1转化为数字形式,因为所有字符本质上还是数字
- if (flag==true)和if (flag)是一样的
- 最好完全不使用浮点数进行比较