- 早上查题,背一遍然后检查自己一遍以上
- 中午有时间就背一遍以复习昨天的为主
- 晚上背一遍,第二天中午再看一眼:day+1
- 第四天课间看一遍:day+3
- 第七天课间看一遍:day+6
- 第十五天课间看一遍:day+14
float和long哪个存放的数据更大,为什么?
Float存放的更大,因为虽然float占用4个字节,long占用8个字节,但是float存储结构不同, 是把32位分成了两部分,一部分存放指数,一部分存放底数。
Integer和int区别
1、Integer是int的包装类,int则是java的一种基本数据类型
2、Integer变量必须实例化后才能使用,而int变量不需要
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
4、Integer的默认值是null,int的默认值是0
存在使 i + 1 小于i的数吗?
存在
如果 i 为 int 型,那么当 i 为 int 能表示的最大整数时, i+1 就溢出变成负数了
Double a=0.09+0.01的结果是多少?怎么处理
结果不是0.1,会丢失精度,用BigDecemal,同样大整形的时候可以使用BigInteger
可以用 BigDecimal
BigDecimal b =new BigDecimal("0.01");
BigDecimal c =new BigDecimal("0.09");
BigDecimal d = b.add(c);
System.out.println(d);
Integer 常量缓冲区
Integer a1 = 128;
Integer b1 = 128;
System.out.println(a1 == b1); //②
Integer a2 = 127;
Integer b2 = 127;
System.out.println(a2 == b2); //③
对于②和③,由于是对包装类型进行对于,所以比较的是引用,然后,对于整数,127到-128之间的数据存在了常量缓冲区,所以a2和b2并没有重新创建对象,而是指定了同一个地址,所以③为true,而a1和b1超出了范围,会创建出新的对象,所以不同,②打印false