1. 美团(意向书)
一面
- 项目介绍(需要再润饰下)
- JDK8的新特性
- HashMap,扩容机制
- ConcurrentHashMap,与HashMap的区别
- synchronized 如何实现,与ReentanceLock的区别;java中有哪些锁:ReentranceLock,ReadWriteLock。
- 如何线程安全的使用HashMap
- MySQL的存储引擎的区别(MyISM 与 InnoDB,锁、事务、B与B+树的区别)
二面
- 项目
- 实现一个死锁
- 算法:atoi函数
HR面
2. B站(Offer)
一面
- 自我介绍
- 手撸代码(二叉树根结点至叶子结点的路径和,去除链表中的重复元素)
- 进程、线程、协程的区别
- 进程通信的几种方式
- tcp断开的过程(四次挥手)
- tcp粘包的原因,为什么udp没有粘包现象?
- 字节实习的介绍
二面
- 项目
- 算法题:twoSum
三面
- 聊项目
- 聊职业规划
- 聊B站(心里排名)
3. 华为(Offer)
一面
- 自我介绍
- 手撕代码:二叉搜索树删除节点
- 排序算法介绍,快速排序算法和归并排序算法比较
- 二叉树、AVL树、红黑树比较
- B树、B+树原理介绍和比较
- 语言使用情况:c/c++、java、python
- 面向对象(抽象、封装、继承、多态),聊下继承
- 聊项目(使用技术)
二面
- 简单自我介绍
- 手撕代码:从长度为m的数组内,选择n个元素,返回可能的集合。例如arr=[1,2,3],m = 3, n = 2,返回结果为 [[1, 2], [1, 3], [2, 3]]
- 聊项目。
主管面
- 自我介绍
- 项目经历
- 技术短板
- 如何看待华为
- 大学时期组织了哪些活动
4. 携程
一面
- 自我介绍
- 项目
2.1 为什么不用阿里云部署你的这套服务
2.2 项目的技术选型是如何考虑的?
2.3 为什么不用关系型数据库,而是采用MongoDB?
2.4 有了redis是不是可以考虑不要MongoDB?
2.5 redis单点故障了怎么办?redis的集群架构
2.6 负载均衡如何做的?Nginx如何保证高可用?
2.7 有用到线程池吗?参数是如何选择的,对IO密集型的任务,线程池参数有公式 - 多线程怎么理解的?(进程、线程、java的锁、线程通信)
- 红黑树了解么?
- 垃圾回收算法,G1
- B、B+树的区别
- 还有其他比较熟悉的知识点吗?设计模式,单例模式,有几种创建方式?为什么内部静态类可以创建线程安全的单例。
- 博客还写了哪些文章?
二面
- 简单的自我介绍
- 项目
- Java基础
3.1 数组和列表的区别
3.2 HashMap原理
3.3 B树、B+树的区别
3.4 ... - 手撕算法:
4.1 atoi算法实现
4.2 0-100的无序数组去除重复元素:Set、BitMap
三面
- 自我介绍
- 研究方向:时序数据、异常检测方法。influxDB数据存储机制
- 脑裂问题
- 分布式事务:2阶段提交和3阶段提交的区别
- B+树和LSM树的区别
- Spark单机内存放不下怎么办?
- Hadoop与HDFS原理?HDFS怎么存文件?
- Redis哨兵模式的原理?哨兵模式的优缺点?如何解决?-》cluster模式