头条后台开发面经
一面(纯技术面) 队列的实现,需要注意的地方 快速排序的实现、时间复杂度分析 B树和B+树的区别、应用 HashMap的实现,扩容机制,扩容时如何保证可操作 Redis扩容机制(渐进式单线程扩容 ) Spring AOP的原理 Spring IoC的原理,如何实现,如何解决循环依赖 两线程对变量i进行加1操作,结果如何,为什么,怎么解决 CAS概念、原子类实现原理 synchronize底层实现,如何实现Lock AQS有什么特点 可见性的底层原理 JVM内存模型,为什么要这么分 本地方法栈和虚拟机栈的区别 如何查看JVM参数是否正确 TCP三次握手,如何实现 Socket编程底层如何实现 select和epoll的区别 算法:蛇形打印二叉树 二面(项目面+技术面) 项目详聊(问了很多、很细) Innodb多列索引 MySQL默认事务隔离级别,不可重复读是什么意思,如何实现可重复读 Redis服务端有20GB内存,现在要缓存200GB数据,如何处理 算法:给出[[1, 2], [3, 5], [8, 8], [15, 16], [32, 38]],求间隔 什么是堆,画了个二叉树问是否符合最小堆的结构,然后根据图叙述堆排序的详细过程。 TCP与UDP的区别,还有哪些其他的传输层协议,用来做什么的。 进程与线程的区别 ,你是怎么理解这两个概念的(快被问烂了的问题……)