public class Demo01{
public static void main(String[] args){
//整数拓展:进制 二进制0b开头 十进制 八进制0 十六进制0x
int num1 = 10;
int num2 = 0b10;
int num3 = 010;
int num4 = 0x10;
System.out.println(num1);//10 十进制
System.out.println(num2);//2 二进制
System.out.println(num3);//8 八进制
System.out.println(num4);//16 十六进制 0~9 A~F
System.out.println("-------------------------------");
//浮点数拓展:银行业务怎么表示?钱
//BigDecimal 数学工具类
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好不要完全使用浮点数进行比较
float f = 01F; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d);//false
float d1 = 255151515151255555f;
float d2 = d1 + 1;
System.out.println(d1==d2);//true
System.out.println("-------------------------------");
//字符拓展:所有的字符本质还是数字
//编码 Unicode 表:97=a 2字节 0-65536 2^16=65536
char c1 = '中';
char c2 = 'a';
System.out.println(c1);//中
System.out.println((int)c1);//强制转换 20013
System.out.println(c2);//a
System.out.println((int)c2);//强制转换 97
//u0000 uFFFF
char c3 ='\u0061';
System.out.println(c3);//a
System.out.println("-------------------------------");
//转义字符
// \t 制表符
// \n 换行
System.out.println("Hello\tWorld!");
System.out.println("Hello\nWorld!");
System.out.println("-------------------------------");
//字符串对比(对象 从内存分析)
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(flag==true){} //新手
if(flag){} //老手
//Less is More! 代码要精简易读
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years;
System.out.println(total); //-1474836480,计算的时候溢出了
long total2 = money*years;//默认上int,转换之前已经存在问题了
System.out.println(total2);
long total3 = money*((long)years);//先把一个数转换为long
System.out.println(total3);
}
}
JavaSE03_1-数据类型扩展及面试题
最新推荐文章于 2023-02-06 20:41:17 发布