目录
基本数据类型中的特殊情况
自动数据类型转换优先关系:
byte,short,char->int->long->float->double
注意:
float占4个字节为什么比long占8个字节大呢,因为底层的实现方式不同。
浮点数的32位并不是简单直接表示大小,而是按照一定标准分配的。
第1位,符号位,即S
接下来8位,指数域,即E。
剩下23位,小数域,即M,取值范围为[1 ,2 ) 或[0 , 1)
然后按照公式: V=(-1)^s * M * 2^E
static作用域问题
Java中静态变量只能在类主体中定义,不能在方法中定义。 静态变量属于类所有而不属于方法
HashMap和HashTable的区别
(30条消息) HashTable和HashMap的区别_Fairy要carry的博客-CSDN博客_hashtable与hashmap区别
接口与接口的关系
类与类之间的关系为继承,只能单继承,但可以多层继承。 2.类与接口之间的关系为实现,既可以单实现,也可以多实现。 3.接口与接口之间的关系为继承,既可以单继承,也可以多继承
>>和>>>的区别
>>>(逻辑操作符):表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0
>>(算数操作符):表示右移,如果该数为正,则高位补0,若为负数,则高位补1;
例如:
res = 20 >> 2; (正数,算数操作符)
20的二进制为 0001 0100,右移2位后为 0000 0101,则结果就为 res = 5;
res = -20 >> 2;(负数,算数操作符,高位补1)
-20的二进制为其正数的补码加1,即 1110 1100,右移2位后为 1111 1011,结果为 res = 211;
而对于>>>符号而言:
res = 20 >>> 2; 的结果与 >> 相同;
res = -20 >>> 2;
-20的结果为 res = 59;
垃圾回收器所对应的回收算法
新生代回收器:Serial、ParNew、Parallel Scavenge
老年代回收器:Serial Old、Parallel Old、CMS
Serial New收集器是针对新生代的收集器,采用的是复制算法
Parallel New(并行)收集器,新生代采用复制算法,老年代采用标记整理
Parallel Scavenge(并行)收集器,针对新生代,采用复制收集算法
Serial Old(串行)收集器,新生代采用复制,老年代采用标记整理
Parallel Old(并行)收集器,针对老年代,标记整理
CMS收集器,基于标记清除
G1收集器:整体上是基于标记 整理 ,局部采用复制
拆箱装箱
对于-128到127之间的数, Integer直接从数组中取, 故a1, a2指向的是同一个对象, A正确.
int类型与Integer类型比较时, 先将Integer拆箱, 再比较值, 故B正确.
包装类和它对应的基础类型作比较——>会进行拆箱比较