面试专题:Oppo复盘

面试时长:28分钟

  1. 线程池运行原理?创建线程池参数的含义?ArrayBlockingQueue作用及实现原理?
    参考答案:

ArrayBlockingQueue是一个阻塞式的队列,继承自AbstractBlockingQueue,间接的实现了Queue接口和Collection接口。底层以数组的形式保存数据(实际上可看作一个循环数组)。常用的操作包括 add,offer,put,remove,poll,take,peek。

  1. 常用集合?TreeMap原理?CopyOnWriteArrayList原理?
    参考答案:
名称 线程安全 描述
ArrayList 继承了AbstractList类,实现了List、RandomAccess、Cloneable、Serializable接口
Vector 继承了AbstractList类,实现了List、RandomAccess、Cloneable、Serializable接口
LinkedList 继承了AbstractSequentialList类,实现了List、Deque、Cloneable、Serializable接口
HashMap 继承了AbstractMap类,实现了Map、Cloneable、Serializable接口
LinkedHashMap 继承了HashMap类,实现了Map接口
TreeMap 继承了AbstractMap类,实现了NavigableMap(继承了SortedMap)、Cloneable、Serializable接口
Hashtable 继承了Dictionary类,实现了Map、Cloneable、Serializable接口
ConcurrentHashMap 继承了AbstractMap类,实现了ConcurrentMap(继承了Map)、Serializable接口
HashSet 继承了AbstractSet类,实现了Set、Cloneable、Serializable接口
TreeSet 继承了AbstractSet类,实现了NavigableSet(继承了SortedSet)、Cloneable、Serializable接口
LinkedHashSet 继承了HashSet类,实现了Set、Cloneable、Serializable接口
CopyOnWriteArrayList 实现了List、RandomAccess, Cloneable, java.io.Serializable
  1. RPC底层原理?如何设计一套RPC框架

  2. Oracle分页语句?为什么要先查一次再做分页?

    select rownum,id,name from ( select rownum rn, n.* from ( select * from test ) n where rownum <=6 ) where rn>=4
    rownum有如下特点:
    1)ROWNUM 只适用于小于或小于等于,如果进行等于判断,那么只能等于1;
    2)ROWNUM 是oracle系统顺序分配的行的编号,返回的第一行分配的是1,第二行是2,依此类推;
    3)ROWNUM 总是从1开始
    4)第一条数据行号为1,不符合>2的条件,则第一行被去掉,之前的第二行变为新的第一行,如此下去,一直到最后一行,条件始终没法满足,所以就一条数据也查不出来。

猜你喜欢

转载自blog.csdn.net/lxn1023143182/article/details/114677979