资深架构师对:头条、滴滴、百度面试题及面试总结
一面:(1小时)
1、自我介绍,可实习时间,在校情况;
2、手撕算法:
(1). 青蛙跳台阶,一次可以跳1个台阶或者2个台阶,问跳完N阶台阶总共有几种跳法?(递归和非递归)
(2). 按照顺时针的顺序,逐层遍历并打印N阶方阵;
3、TCP/IP协议;
4、TCP三次握手,四次挥手;
5、最近在看什么书或者在学什么知识;
6、根据最近所学的提几个问题;
7、你有什么想问的;
二面:(1.5小时,GG)
1、自我介绍;
2、项目;
3、在校情况,可实习时间;
4、Https和Http的区别;
5、SSL的加密方式;
6、其他加密方式;
7、CA证书的作用;
8、TCP为什么是三次握手,四次挥手?
9、TCP滑窗机制的作用;
10、JVM虚拟机GC;
11、在编程中应该如何避免出现的相互循环引用,而造成的内存泄漏;
12、手撕算法:
(1). 单向链表,从倒数第K节点开始反转链表,输出整个链表;
(2). 乱序不重复数组,输出其中任意两个相加和为固定值M的集合;
(3). (2)中的解,时间复杂度是多少?还有更优的解法吗?
13、你有什么想问的;
第一次面试,感觉比较紧张,没回答好。头条问的都不算很难,主要侧重于数据结构和计算机网络基础,尤其是手撕算法很重要,基本上每一轮面试都有至少2道算法题。由于是实习面试,面试不算很难,如果正式找工作可能难度要比这个增加一倍吧。
滴滴:(后端开发实习生)
1、自我介绍,项目;
2、用到过哪些数据库,数据库语言;
3、MYSQL的索引;
4、介绍下联结,写一个SQL;
5、写过什么比较复杂的SQL语句吗;
6、Hive了解吗;
7、写过脚本吗;
8、你有什么要问的;
滴滴这个,必挂无疑。他招的是后端数据处理,主要用脚本在hive表上面拉取数据,这个楼主没接触过,所以基本上走了个过场;
百度:(后端开发实习生)
一面:(电话面试,30分钟)
1、自我介绍;
2、项目,项目的介绍,你的参与,遇到的难题,怎么解决,印象最深的难题;
3、实习时长;
4、你有什么想问的;
二面:(1.5个小时)
1、自我介绍;
2、项目,问的也挺详细的;
3、数据库的优化方式;
4、数据库的索引的实现;
5、如何分库分表;
6、JVM了解多少?GC,类加载机制,高效并发;
7、ConcurrentHashMap的原理,用过这个吗;
8、锁机制了解多少,一层一层深入,直到回答不出来;
9、Redis原理,使用;
10、Java的异常体系;
11、Http和Https;
12、Session和Cookie;
13、MVC机制,SpringMVC原理,三层结构;
14、设计模式了解哪些?手写一个单例模式;
15、事务管理,实现方法;
16、集群;
17、对象序列化;
18、对于各个语言的看法;
19、对软件开发的看法;
20、学习生活上的一些问题;
21、你有什么想问的;
还有一些记不起来了,想起来再更。
找的大牛内推的。二面结束后,面试官给我介绍了下他们的产品,让我回去下载一个先回去了解下,然后他给我提交一下,让我回去等HR电话。百度相对于来说,问的更加全面,由浅到深。实习生问的还是比较容易,如果直接应聘可能难度系数至少乘以1.5;(只求百度能稍微效率一点,分享一波涨涨人品)
面试建议:
关于公司,大厂一般对学历要求比较高,最好是研究生,对于专业的要求没那么高,学历+能力,看重这个。
关于简历,尽量简洁明了,网上有很多模板,可以参考下。一般岗位、时长、联系方式写最上面,下面教育背景,专业技能,开发经历等。开发经历,每一个下面用两三行文字描述下,项目内容和你的工作。这个简历一定要重视,因为面试管就是照着你的简历问的,想到什么看到什么就会问什么。项目一定要熟悉,并且能说出来做了什么,难点是什么,怎么实现的。这个很重要!
如果你想学习一线互联网公司里面的技术有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatisNetty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)
需要的可以关注之后私信哈,回复“资料”领取免费架构视频资料,记得要点赞转发噢!!!