这份面试题是交流群里的一位在国企5年的非全研究生整理的,他国企车间流水线工作5年,后面读了个非全研究生,最后收割了腾讯百度等大厂offer。今天先分享他的面试题,下一篇会讲讲他的转型之路。
旷世
1 tcp滑动窗口 发送端接收端的处理细节,窗口为0时怎么处理谁主导谁
2 进程通信的方式,共享内存的实现机制
3 Linux文件系统和目录系统的权限区别
4 算法题 a,b两个有序数组,找出第k小的数,logk,二分查找,1个小于怎么办?
5 日志统计用shell实现
6 mr的执行过程,hive的执行过程
7 mysql事务的概念,可重复读是怎么实现的
8 spring的aop是怎么实现的,jdk动态代理是什么
9 RMI有了解吗
10 java中锁的实现方式都有哪些,有什么区别
11 项目的架构图画一下,数据之间是怎么传递和交互的
12 rpc和http的区别
13 多线程下,1个线程崩溃了,主线程会不会崩?
14 项目的配置容量是怎样的,性能要求,设计目的预期达到哪些标准?
15 solr和es的区别是什么
16 tcp的三次握手和四次挥手,为什么
17 zk怎么保证数据一致性
18 rabbitmq的queue和exchange怎么设计的,fanout模式是什么
19 缓存,l1 l2 page,redis
心得:
1 简历就是考察范围,要对简历上的东西知根知底
2 注意一下底层实现的原理和细节,多问几个为什么要这样做
美团
项目qps是多少
Redis数据库里缓存的是什么
数据来源,怎么导入的
做过并发量的测试吗
涉及到事务机制吗?哪些业务涉及了,怎么处理的时候分布式事务怎么处理,自己本地的系统怎么处理的事务?
Spring怎么实现的事务
阿里电话面试
项目难点
MR流程(会,文档中有写)
MR优化选项配置(会,文档中有写)
数据倾斜处理,大表join小表(不太会,当时没细看)
hive的hql逻辑是怎么修改的,从而解决了大表join小表的数据倾斜问题(不会)
MR选项优化后,以及hive解决数据倾斜后性能提高了多少?(不会,说是测试负责的性能指标,我这里不太清楚)
系统的架构设计是谁负责的?你们讨论系统的设计过程中,你对架构设计方面有没有不同的意见和想法?
沟通过程中有没有意见不一致的情况?
团队规模(10个人,5后端2前端2测试1架构)
vivo
Dubbo熔断和限流 机制有了解过吗?原理是什么?限流是怎么处理的?
(我说了下服务降级,熔断和限不太了解)
Linux 读取一个以制表符分割的文件,取出每行第3个位置的数字,并排序,写出来
(我说用awk sort指令,具体的不会)
Linux如何查看io情况,如何查看内存情况
(io不会看,内存我说可以用top指令去看)
Redis用的什么模式,读写分离怎么做的
(这里我说的用主从架构,读写分离我不知道细节应该怎么说,就说的主负责处理写请求,并同步到从服务器上。从服务器处理读请求)
如何设计一个分布式系统的全局唯一id生成器,不能用数据库,也不能用缓存数据库
(我说先提取业务中的一些信息,比如时间等,作为id中的固定信息,以后尾部添加一个序号,从小到大排,同时内存中维护一个set,来检验是否有重复;面试官说那你应用宕机怎么办?我补充了下可以考虑进行持久化,面试官没再说什么)
RabbitMQ有哪些组件,怎么传递的,消费者连接的哪里,生产者连接的哪里(我说有生产者,消息中间件,消费者,再具体些说有消息message,路由器exchange,队列queue,先是生产者生产消息,发送给exchange,然后exchange根据消息的属性和分发规则发送给相应的对接queue,消费者从自己绑定的queue中取出消息进行消费,面试官说让我回去再好好看看,说的不对。。)
zk如何避免脑裂 脑裂产生的原因 3.46版本后解决了脑裂问题,对这个算法有了解吗?
(只会脑裂的定义。。)
排查过java错误吗?比如线程卡死,可能有哪些原因,怎么分析原因,怎么定位错误?(用jstack死锁,怎么查到死锁的线程?死锁关键字有哪些。还可能有哪些原因?)
垃圾回收新生代和老年代用的什么算法,为什么
Spring用过的注解
头条
订单超时怎么处理
上传文件,后台计算耗时怎么办
最小栈
0-100,99个数少1个,怎么找出来
项目怎么设计的,怎么交互的,数据怎么流动的
新浪
1.如何把hive表快速导入到redis中
2.一张表记录了用户uid和博文id,另一张表存了所有的博文id和对应的tag(多个),统计每个用户感兴趣的所有tag和tag次数(后来提示说考察窗口函数)
2.拓展 排序问题,一个集团有许多子公司,希望按照省份和分数进行排序
3.一张表存了今天之前的所有用户(6亿),一张表存了今天登录的用户(1亿),问怎么快速找出新增用户
技术栈:hive 德鲁伊 cleanhouse,建议刷一刷leetcode sql
度小满
1.HashMap相关问题(为什么长度是2的幂次方?多线程下可能出现死锁的原因?树化阈值多少,为什么?)
2.类加载机制,双亲委派模型,哪些情况需要破坏双拼微派模型,原理是什么?SPI了解吗?
3.GC相关,GC roots都含有哪些
4.线程池相关,各个参数都代表什么
5. ThreadLocal用过吗?使用场景都有哪些?
6.Dubbo中用zk作注册中心,zk会有哪些问题和隐患(我回答脑裂,面试官跟我讨论了一会,最后得出结论脑裂并不是很大的问题,因为Dubbo本身注册中心即使挂掉,消费者也能通过本地缓存调用生产者的服务)
7.分布式CAP了解吗?zk主要实现的哪2个?
8.Dubbo的拒绝策略有哪些,怎么实现负载均衡
9.MQ在项目中的应用,都有哪些数据
10.Redis的应用场景,存了哪些内容
某知名外企
先现场做了套笔试卷子,以选择填空为主,大部分类似于一个字符串,各种拼接,作为参数传入方法各种修改,最后问输出的内容是什么。有3道编程题,都很基础,一个是查找文件,一个是用循环的方式实现斐波那契,一个是个业务场景题,给一张数据表和一个业务场景,让实现增删改查的操作
针对项目的发散性提问,比如根据你的项目假设一种可能出现的应用场景,让你想想怎么设计解决方案会更好。
问了些Java相关的基础(对象放HashMap需重写哪些方法,ThreadLocal,其他的想不起来了)
zk相关基础(Zab协议,其他的分布式一致性算法)
用英语解释一下什么是并发编程,什么是死锁
--end--
推荐阅读:八家国企大数据面经
专科生作业帮大数据面经专科生阿里大数据一面面经2019有赞面经,已拿offer北美零基础转行开发求职面经双非硕士阿里大数据开发面经
从简历被拒到收割今日头条offer,我花了一年时间阿里技术面全A,终面却被产品经理拉下马,我不服上海小公司大数据面试题汇总外企面试,哪有你想象的那么难!