1. 前序和中序数组还原二叉树,然后输出二叉树每一层最右边的节点
    2. hashMap与hashTable的区别
    3. hashMap为什么线程不安全,数据丢失和死链的问题是怎么发生的?
    4. concurrentHashMap的size()函数会上锁吗?为什么?
    5. 前面提到了CAS,介绍一下,CAS的ABA问题如何解决?
    6. 介绍一下synchronized偏向锁、自旋锁、对象锁
    7. synchronized有什么不足之处?
    8. 公平锁和非公平锁怎么实现的?
    9. 介绍一下QAS?tryAcquire()函数的实现?QAS条件队列和同步队列有什么区别?条件队列的节点是用什么函数增加和删除的?条件队列头节点被唤醒之后会去哪里?
    10. A向B转账,B也要向A转账,转账过程如下:A先获取A账户的锁,进行减操作,然后A要获取B账户的锁,进行加操作,B同理。发生死锁了,怎么办?
    11. 线程池类型有哪些?任务拒绝策略有哪些?线程池核心线程在对象刚初始化完成,没有来任务时,存在吗?
    12. scheduledThreadPool的schedule是怎么实现的?
    13. mysql的聚簇索引和非聚簇索引的区别?
    14. B树和B+树的区别?B+树的查询时间复杂度?
    15. 解释一下sql内连接和外连接
    16. 你认为在创建索引时,原则是什么?
    17. JVM的垃圾回收算法有哪些
    18. G1用的什么垃圾收集算法
    19. 快重传和确认重传
    20. TCP快启动
    21. TCP滑动窗口机制
    22. spring IOC、AOP解释一下