1.redis的底层原理
2.CPU密集型使用单线程,IO密集型使用多线程。充分发挥CPU
CPU密集型:运行的程序输入输出较少(IO占用率低),而需要CPU计算时间长(CPU占用率高)。就比如redis就可以看作是一个CPU密集型,所以redis使用的是单线程
IO密集型:需要CPU计算时间短(CPU占用率低),而运行的程序输入输出多(IO占用率高)
3.HashMap和concurrentHashMap的key、value是否可以为null
<1> HashMap计算key的hash值时调用单独的方法,在该方法中会判断key是否为null,如果是则返回0,可存在一个为null的key,value值可为null;而Hashtable中则直接调用key的hashCode()方法,因此如果key为null,则抛出空指针异常。
<2> HashMap将键值对添加进数组时,不会主动判断value是否为null;而Hashtable则首先判断value是否为null。
<3>以上原因主要是由于Hashtable继承自Dictionary,而HashMap继承自AbstractMap。
<4>虽然ConcurrentHashMap也继承自AbstractMap,但是其也过滤掉了key或value为null的键值对。
java基础强化
最新推荐文章于 2024-09-24 21:04:36 发布