Java学习笔记
视频来源 狂神说Java
https://www.bilibili.com/video/BV12J41137hu?p=31&t=20
一边用IDEA敲代码一边把笔记放到注释里。
第一天
- 整数拓展:进制
二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010; //八进制0 输出:8
int i3=0x10; //十六进制0x 0~9 A~F 16 输出:16
- 浮点数拓展 银行业务怎么表示?钱
一般使用BigDecimal 数学工具类
float 有限位数 离散 舍入误差 大约 接近但不等于
double
//最好避免使用浮点数进行比较
float f=0.1f;
double d=1.0/10;
System.out.println(f==d);//false
float d1=213213213213213213f;
float d2=d1+1;
System.out.println(d1==d2);//true
- 字符拓展
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);//强制转换 输出:97
System.out.println(c2);
System.out.println((int)c2);//输出:20013
//所有的字符本质还是数字
//编码 Unicode 表:97=a 2字节 0-65536 Excel 2`16=65536
//取值范围U0000-UFFFF
char c3='\u0061';
System.out.println(c3);//输出a
- 转义字符
\t 制表符 空格 \n 换行
System.out.println("hello\tworld");
5.`布尔值拓展
boolean flag=true;
if (flag) {}//等同于if(flag==true){} //less is more! 代码要简洁易读
- 类型转换
低到高:byte,short,char->int->long->float->double(小数的优先级大于整数)
强制类型转换 (类型)变量名 高–低
自动类型转换 低–高
注意
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题!
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下滑线分割
int money=10_0000_0000;
int years=20;
int total1=money*years;//-1474836480,计算的时候溢出了
long total2=money*years;//依旧是-1474836480,因为计算完后默认是int,已经溢出,再转换成long
long total3=money*((long)years);//先把一个数转换为long 输出:2000000000
System.out.println(total3);
//L l 尽量用L,l在代码中很像1