整数的拓展
- 进制:都是从0开始数,逢几进一
- 二进制
- 八进制
- 十进制
- 十六进制
public class Demo01{ public static void main(String[] args){ int i = 10; //十进制 0,1,2,3,4,5,6,7,8,9,10(10) int i2 = 010; //八进制0 0,1,2,3,4,5,6,7,10(8),11(9),12(10),13(11),14(12),15(13),16(14),17(15),20(16) int i3 = 0x10; //十六进制0x 0~9 A~F 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10 int i4 = 0b10; //二进制0b 0(0),1(1),10(2),11(3),100(4),101(5) System.out.println(i); //10 System.out.println(i2); //8 System.out.println(i3); //16 System.out.println(i4); //2 } }
浮点数的拓展
银行业务怎么表示?钱数额的准确度
- 一般用数学工具类 BigDecimal 代替float、double
- 浮点数表现的字长是有限的,离散的,结果是有舍入误差的,是大约、接近但不等于的
- 最好完全避免使用浮点数进行比较,判断会有误(案例如下)
public class Demo01{
public static void main(String[] args){
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f);//0.1
System.out.println(d);//0.1
System.out.println(f==d);//false
float d1 = 2323123124241231231f;
float d2 = d1+1; //d2明显比d1大1
System.out.println(d1==d2);//true
}
}
字符的拓展
- 所有的字符本质上还是数字
- 编码Unicode表:(97=a ,65=A),占两个字节,可以表示0~65536个字符,Excel 最长为2的16次方=65536
- ASCII码
public class Demo01{
public static void main(String[] args){
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
//================================================
char c3 = '\u0061';
System.out.println(c3);//输出 a
}
}
布尔值的拓展
public class Demo01{
public static void main(String[] args){
Boolean flag = true;
//下面两个如果都是一样的意思
if(flag = true){}
if(flag){}
}
}
面向对象(从内存分析)
public class Demo01{
public static void main(String[] args){
String sa=new String("hello world");//new 是表示用new开辟了一个新的对象内存空间
String sb=new String("hello world");
System.out.println(sa==sb);//比较的是引用数据类型,则比较的是对象地址是否一致(两个为独立地址空间,对象存放的地址不一样)
String sc="hello world";
String sd="hello world";
System.out.println(sc==sd);//基本类型比较的是值是否一致
}
}
转义字符
public class Demo01{
public static void main(String[] args){
System.out.println("hello \t world!");// \t 表示水平制表符
System.out.println("hello \n world!");// \n 表示换行符
System.out.println("hello \r world!");// \r 表示回车
System.out.println("hello \" world!");// \" 表示双引号
System.out.println("hello \' world!");// \' 表示单行符
System.out.println("hello \b world!");// \b 表示退格
}
}