1.手撕两个有序数组合并为一个(不能用额外数组):思路移动长的数组,双指针比较,后来发现其实可以比较大的数放尾部
2.讲了一下二叉树翻转的思路:递归(其他思路?栈模拟递归(具体实现不太清楚,只记得有这个方法))
java线程池
HashMap底层 引申到->
红黑树,AVL树
ConcurrentHashMap->引申到CAS
CAS(答的有点不清楚,主要回答了比较交换(没有问ABA原子引用,(类似版本链)))
线程池核心参数(答了具体的线程等待过程,以及抛弃策略)
Redis (问的不多,就问了清除缓存的策略,以及为什么使用Redis)(没有问Redis底层结构)
垃圾回收(串行,并行,CMS(具体过程:初始标记stw(GCRoot)、全标记、补充标记stw,标记清除))没有继续问G1(类似CMS的过程,但是使用了标记整理,且没有内存碎片(由于分成了多块,没有了分代的概念))
分布式锁(答到Reids使用Setnx可以模拟分布式锁,还有RedLock的一个包?记不清了)
没有答出来的:
Redis一致性解决?(只记得一个什么保证可靠的消息?就回答记不清了)
SpringMVC的Request请求到Controller的过程?(只记得请求转换来转换去最后返回了一个ModelAndView?,回答不太了解)
RPC框架?(就说了项目中用到了HttpClient,其他不了解)