BAT面试

6.6 BAT面试
一面
一面偏架构方面
1、介绍一下自己,讲讲项目经历
2、你们项目中微服务是怎么划分的,划分粒度怎么确定?
3、那在实践微服务架构中,有遇到什么问题么?
4、你们在关于微服务间数据一致性问题,是如何解决的?
5、你们为什么不用其他的MQ,最终选择了RokcetMQ?
6、为什么RocketMQ没有选择ZooKeeper,而是自己实现了一个NameServer集群?
7、嗯,理解的不错,Zookeeper在选举的过程中,还能对外提供服务么?
8、对Paxos算法了解多少?
9、如果让你来设计一个春晚抢红包架构,你会怎么设计?
10、有什么想问我的?
大概聊了40分钟左右~
二面
二面有点偏底层和算法
1、扯了下项目、讲一下项目经历
2、你们用了redis,redis的底层数据结构了解多少?
3、知道动态字符串sds的优缺点么?
注:sds为redis底层数据结构之一
4、redis的单线程特性有什么优缺点?
5、用过 Redis 的哪些数据结构, 分别用在什么场景?
6、你们怎么解决缓存击穿问题的?
注:估计答了Hytrix
7、Hytrix的隔离机制有哪些?Hytrix常见配置是哪些?
8、自己做过哪些调优?JVM调优、数据库调优都行!
9、给了个场景,问你怎么调
10、一道算法题,具体题目忘了,在给出的链接中作答~
三面
1、讲讲自己基础掌握情况,以及项目经历
2、平时会用到哪些数据结构?
3、链表和数组的优缺点?
4、解决hash冲突的方法有哪些?
5、讲讲自己对HashMap的理解,以及和Weakhashmap的区别?
6、你刚才讲的是JDK1.7版本的实现,知道JDK1.8做了哪些改动么?
7、你们在微服务中用RPC通信还是REST?
8、RPC和HTTP的关系是什么?
9、知道HTTP1.0和1.1的区别么?
10、谈谈什么是HTTP的长连接和短连接?
11、TCP的三次握手和四次挥手,以及为什么要三次握手,而不是二次?
12、TCP 有哪些状态,相应状态的含义
13、让你评价一下你自己?
然后问了下面试官还有几轮,面试官说不一定!
四面
1、依然是介绍自己
2、你们数据库的高可用架构是怎么样的?
3、如何保证数据库主从一致性?
4、知道mysql的索引算法么?
5、为什么mongodb的索引用了B树,而mysql用B+树?
6、用mysql过程中,有遇到什么问题么?
7、你们生产用的是哪种事务隔离级别,为什么?
8、谈一谈你对微服务架构的理解
9、你用过哪些RPC框架,讲讲他们优缺点
10、用过docker么,对容器了解多少
11、有什么问我的?
HR面
问经历,问离职原因,问职业规划,问待遇。
唯一比较奇葩的一个,居然不问你期望薪水~~

你可能感兴趣的:(面试,Java面试)