马上金三银四,想着面试大军可能也过不了几天就要来了,所以这两天整理了一些面经,今天给大家看的是“美团+字节跳动+腾讯”这三家的,每家一二三面,我想大家可以自己测试一下能坚持到哪里。
先来看美团
美团的话,三面下来,设计的内容知识也是挺广的吧,有MySQL、Redis、Kafka、线程、算法、+、volatile、线程、并发、设计模式等等...
一面问题(MySQL+Redis+Kafka+线程+算法)
- mysql知道哪些存储引擎,它们的区别
- mysql索引在什么情况下会失效
- mysql在项目中的优化场景,慢查询解决等
- mysql有什么索引,索引模型是什么
- B-树与B+树的区别?为什么不用红黑树
- mysql主从同步怎么做
- 乐观锁与悲观锁的区别?
- binlog日志
- redis 持久化有哪几种方式,怎么选?
- redis 主从同步是怎样的过程?
- redis 的 zset 怎么实现的?
- redis key 的过期策略
- hashmap 是怎样实现的?为什么要用红黑树,而不用平衡二叉树?为什么在1.8中链表大于8时会转红黑树?HashMap为什么线程不安全的?
- 如何实现线程安全的hashmap?
- select 和 epoll的区别
- http与https的区别,加密怎么加的?
- raft算法详细讲解
- Kafka 选主怎么做的?
- kafka如何保证生产与消费都是同步的?
- kafka 怎么保证不丢消息的
- redis如何保证高可用
- 算法:剪绳子(贪心或递归解决)
- 算法:给前序和中序遍历,重建二叉树
二面(volatile+线程+并发+算法+设计模式)
- 自我介绍
- 讲讲项目(项目没啥亮点,直接问基础)
- volatile作用?底层实现?禁止重排序的场景?单例模式中volatile的作用?
- 如何构造线程池,它的参数,饱和策略?
- 公平锁和非公平锁区别?为什么公平锁效率低?
- 线程都有哪些状态?
- 线程、进程、协程的区别?
- 同步队列器AQS思想,以及基于AQS实现的lock,。
- 并发工具类CountDownLatch、CyclicBarrier、Semaphore介绍
- Execuors类实现的几种线程池类型,最后如何返回?
- 手写单例模式
- 手写消费者生产者模式
- 算法:反转单链表
- 算法:给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。
三面
这一面,没问啥东西,主要聊人生,和未来3年的规划。。。。。。
第二个是字节跳动
一面(算法+数据库+事务+网络)
- 自我介绍
- 项目介绍(没亮点,还是问基础)
- 堆排序的原理及时间复杂度,是否稳定,最坏及最坏场景。
- Object类都有哪些方法?
- DNS解析的过程/浏览器输入一个url,敲下回车后网络的全过程
- HTTP和HTTPS的区别
- UDP怎么实现可靠传输
- 介绍下https,是如何加密的,加密算法
- 数据库索引的优缺点,以及什么时候数据库索引失效
- 事务的隔离级别?