6.mysql索引的数据结构,为什么用B+树不用B树
7.事务隔离级别,聚集锁非聚集锁(问到了一个非常细节的问题:如何用可重复读的隔离级别避免幻读)
8.线程池的构造函数参数,队列的拒绝策略
9.spring相关、bean的生命周期,循环引用问题spring如何处理
10.concurrentHashmap1.8为什么放弃了分段锁
11.数据库分库分表相关
感觉一面主要考察的是知识广度
1.springAOP的原理,动态代理是怎么实现的
2.snmp
3.fullgc的时候会导致接口的响应速度特别慢,如何排查和解决
4.netty,如何避免的NIO空循环,零拷贝
5.问了一些简单的算法,说一下思路
二面考察的主要是知识的深度以及解决问题的能力。开篇常规先简单自我介绍以及介绍项目。
1.kafka的replicas的作用,为什么比其他的消息队列好。
2.微博评论长链接短链接的问题,让我设计一个服务来处理长链接短链接,包括怎么读怎么存等。
各种聊项目,从项目的架构设计到部署流程。
3.solr和mongodb的区别,存数据为什么不用solr?
4.谈谈分布式锁、以及分布式全局唯一ID的实现比较?
5.对分布式架构设计的哪些方面比较熟悉?
6.介绍你实践过的性能优化案例,以及优化思路
总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)**
[外链图片转存中…(img-IQX84T4D-1714258260480)]