BAT的java面试题

 

公司:国内三巨头其中的一家!
面试时间约在1月份左右!
基本上都是在晚上,所以不影响白天上班!

一面

一面偏架构方面

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面

问经历,问离职原因,问职业规划,问待遇。
唯一比较奇葩的一个,居然不问你期望薪水~~

posted @ 2019-02-25 21:56  休耕  阅读(1125)  评论(0编辑  收藏  举报