最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东-美团),面试回来之后会发给我一些面试题。有些朋友轻松过关拿到offer,但是有一些是来询问我答案的。 其实本来真的没打算写这篇文章,主要是自己得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最近问我的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。 说实话,我只能隐约想起高并发、JVM、分布式跟TCP/IP协议这些个关键字,具体的问题真的是几乎都没记住。而且就算我记住了,也告诉你了,你也背会了,但我觉得,在面试中,你被问到一模一样问题的可能性依然很小。 甚至就算你运气好被问到了,你也照着背下来了,也不一定就能对你的面试起到正面的作用,因为面试官万一多问一句,你可能就露馅了,那还不如干脆点说不会更好。 在此给大家讲一下大型互联网企业面试题。 京东面试(未通过):一面: 1.离职原因; 2.Zookeeper在项目中的使用及原理; 3.Springcloud的一些组件介绍; 4.分布式锁: Redis实现方式: redis:为什么使用setnx,或者说set 和setNx有什么区别; setNx:系统在10:05 设置一个值,并给出5分钟的过期时间,系统刚刚set完之后redis集群崩溃,10:11分系统重启成功,那么redis中set的值是否还存在? 考察点: 1、redis 的持久化:刚set完是否能够被持久化到快照或者binlog日志中; 2、假设redis被持久化,且系统重启时间超过了redis设置的过期时间,那么key是否会被清理; zookeeper实现方式: 5.多线程的创建方式: 1、继承thread类; 2、实现runnable接口; 3、实现callable接口; 4、线程池方式进行创建及每个参数之间的逻辑关系; 6.服务器CPU数量及线程池数量的关系; 1、服务器cpu数量(n); 2、是IO密集型(2n个线程)应用还是计算密集型(n+1个线程)应用; 7.Mysql的sql优化 优化方向: 1、Mysql使用过程中走索引的语句: 2、索引的优化: 3、亿级的数据必须使用like进行查询,如何优化? 8.如何做一个秒杀系统; 1、MQ做限流:保证只有1000个人可以访问系统; 2、使用redis做缓存; 3、redis往mysql中进行持久化 9.自己认为自己的技术怎么样? 二面: 1.Mysql是集群还是单节点;最大的表中数据量大约是多少?3000w-4000w; 2.Mysql主从配置是DBA去做还是自己去做?mysql主从同步的机制的原理?mysql主从复制主要有几种模式? 3.Redis持久化方式:rdb、aof;redis中哪个版本开始可以对分布式使用; 4.Nginx的使用场景; 1、请求转发; 2、负载均衡; 5.Spark主要用来做什么的? 6.前端了解么:JavaScript有没有闭包的概念? 7.离职原因? 字节跳动(已拿offer)一面二面(一面二面只隔了10分钟,就放一起说吧) 1、C++多态实现机制 2、引用和指针的区别 3、如何让引用中途改变指向 4、引用可以实现运行期多态吗?如何实现?举个例子 5、虚指针放在哪?自己实践探究过吗? 6、栈的大小一般是多少?跟什么有关? 7、四次挥手什么时候回退化为三次?抓过包吗?工具?为什么抓包? 8、虚拟内存是怎么回事? 9、select poll epoll底层实现?哪种好?为什么好? 10、红黑树了解吗?索引为什么不用红黑树?B+树的优点是什么? 11、幻读是怎么回事?如何保证一致性? 12、对于缓存一致性你怎么看?怎么避免脏数据? 13、Redis缓存雪崩、缓存穿透是怎么回事? 14、Redis 6种数据淘汰机制?AOF重写的过程? 15、Redis底层网络模型?在Linux和 Windows下各是什么模型 16、OS中外碎片内碎片?区别?怎么回收? 代码题: 1、两个有序链表合并,我写了个栈上开辟辅助空间的版本,面试官给了个赞… 2、链表元素交换,第1位和第2位交换,第3位和第4位交换 、、、、强调 需要考虑链表中奇偶元素个数。比如1->2->3->4->5 ,输出 2->1->4->3->5。 后来又让我封装一下交换函数和链表初始化函数,比如主函数输入 奇数9 ,自动生成链表 1->2->3->4->5->6->7->8->9,然后调用转换函数生成 2->1->4->3->6->5->8->7->9 3、岛屿数量问题。 三面: 1、介绍自己 2、介绍项目 3、项目是一个成熟的demo了吗?测试环节是怎么做的?有没有改进 4、个人优势劣势介绍 5、智力题:腾讯赛马问题:25匹马,5个赛道,没有计数器,找出跑的最快的Top3,最少需要多少次 6、下楼梯,走两步或者走一步,问一共多少种方案。跟小青蛙跳楼梯差不多 。 7、如何判断链表有环?怎么找出来 ?最短时间复杂度怎么做? 8、意向工作地? 9、反问 四面 1、介绍自己 2、介绍实习经历,收获是什么?在接下来的生活学习中,那段收获有没有帮助你? 3、学校经历?看你有过IT类比赛,是什么情况? 4、团队比赛中,有没有遇到什么问题?沟通上融洽吗?怎么解决 5、平常有什么跟IT无关的活动吗? 6、意向城市?我想听真实想法… 7、反问 碎碎念可能有些人会问,这些书你都看了吗?这也太多了之类的?其实看着挺多,慢慢学慢慢看,慢慢的就会有收获了,如果你像我一样学校不太好,不是什么重点学校或者不是计算机专业的,那么请你笨鸟先飞。 最后:以上的面试经历只是其中的一部分,还有挺多面试笔记的,还有一些关于大厂面试常问的一些问题和一些网上比较下载比较高的电子书籍
|