数据类型拓展!
public class Demo03 {
public static void main(String[] args) {
//整数拓展: 进制 二进制(0b) 八进制(0) 十进制(正常) 十六进制(0x)
int i1 = 10;
int i2 = 010; //八进制
int i3 = 0x10; //十六进制0x 0~9 A~F
int i4 = 0x11; //十六进制0x 0~9 A~F
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
//浮点数拓展: 银行业务或财务业务怎么表示? 钱
//float 有限 离散 舍入误差 大约 接近但不等于
//最好避免使用浮点数 float 进行比较
//double
//BigDecimal 数学工具类 Java内置
float f = 0.1f; //0.1
double d = 0.1; //0.1
System.out.println(f==d);//false
System.out.println(f);
System.out.println(d);
float d1 = 231313131313f;
float d2 = d1 + 1;
System.out.println(d1==d2);//true
/*个人理解:
System.out.println(f==d);//false
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);//强制转换
//所有的字符本质还是数字
//char会涉及到编码问题,Unicode编码可以处理各种语言的文字,占2个字节,之前最多可以表示0-65536个字符,现在不清楚肯定更多
//Excel表格最多表示2的16次方,也就是65536个字符
//Unicode 有一个自己的表, 比如 a 的编码为97,中 的编码为20013 Unicode存储表的区间范围U0000-UFFFF
char c3 = '\u0061';
System.out.println(c3);
//疑问1:System.out.println((int)c1);c1=a,强制转换的结果为97,System.out.println(c3);的结果为a 可编码为u0061
//为什么会出现这样的结果? 97!= u0061 也就是 a!=a 同样的一个编码,若用表存储数据,那相同的字符就应该用相同的表示方式。
//原因待查证,疑问中...
//转义字符
// \t 制表符
System.out.println("Hello\tWorld");
// \n 换行
System.out.println("Hello\nWorld");
//转义字符很多,需要时可自行百度查询。
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
//疑问2:为什么所见非所得?
//对象,从内存分析
//未来通过分析底层才能分析出为什么
//布尔值拓展:
boolean flag = true;
//判断:如果是,给出结果;如果否,给出另一个结果;
if (flag==true){//新手
System.out.println("是");
}
if (flag){//老手,如果不写==true,Java默认为==true(推荐写法)
System.out.println("是");
}
// Java中存在这样的概念:Less is More!更少的就是更多的!代码要精简易读!
}
}