Java后端实习面试总结 字节、阿里、腾讯 已OC 秋招顺利
北京211,本科非科班,牛客看了那么多面经,现在也来这总结一下今年三月份找实习的面试经历和心得体会,在秋招中应该也很有参考价值,顺便许愿秋招顺利。
前期准备
时间:
大概是去年10月份(大三上)的时候决定冲一波暑期实习,到今年春招还找不到就滚回去考研了。
准备的内容:
计算机基础相关,数据库、网络、数据结构与算法、操作系统这些;
经典Java后端学习路线一套;
LeetCode 200+,基本就是剑指和HOT100刷明白后再一些针对性的训练;
项目,整了个社区论坛系统和烂大街秒杀;
一些常用的或项目涉及的中间件,分布式系统等;
面经
3.5 阿里一面 66min
二月底群里看到很多阿里提前批的实习招聘信息,准备地很烂但急了,学长说随便面不进系统,于是群里挑了个热情学长就投了简历,貌似是做交易的部门。
项目(怼了很久),问功能问设计问难点问实现,会找一些系统功能上的缺陷让给出解决方案,期间会问一些用到的中间件的知识:
MQ消息订阅和推送,一些具体场景下应该pull还是push消息;
MQ的原理知道吗?知道多少?架构是怎么样的;
MQ客户端怎么知道MQ有消息?
Java垃圾回收机制是什么?
怎么知道对象要被回收?哪几种垃圾回收算法?新时代用什么算法?标记复制具体怎么做?老年代用什么算法?
怎么判断对象在新生代还是在老年代?
内存模型,有哪几种内存模型?栈、堆区别等。
Java对象的静态变量放在哪里?类加载的class的字节码文件在哪?
数据库事务隔离级别?事务的ACID?
MySQL表的锁的类型?什么情况使用表级?
有没有实际上用过多线程?
线程之间怎么通信?
(第一次面试,很紧张很拉,电话面总是听不清楚面试官说的话,寄。)
3.16 阿里菜鸟网络 一面 38min
成绩怎么样,计算机课程成绩怎么样
项目(也是本次面试中占大头的部分),基础内容问完,多级缓存遇到巨大流量怎么处理?对项目改进点,如支付功能要怎么实现等。令牌桶算法用的什么,源码。
看过的源码有哪些?
学过设计模式吗?知道哪些设计模式运用到的地方,并简单说一说。
3.18 字节国际化电商 一面 55min
项目:基础内容,一并问了数据库、分布式等;
redis丢失怎么知道?redis主从复制;mysql索引结构,为什么b+树,undo日志;mysql优化,分析中explain,type等含义;
分布式怎么实现;什么时候使用事务型消息(要求强一致的情况);其他是怎么解决消息问题的
tomcat什么网络模型;io多路复用,阻塞非阻塞?两者区别?
http,https,ssl怎么实现安全?
网络攻击技术相关,http安全问题带来的攻击;dns域名劫持是什么,原理?中间人攻击是什么,在什么环节什么原理?
synchronized和锁的比较,哪个更重,适用性分析?ConcurrentHashMap怎么实现并发?
Java泛型原理,什么时候加载类等;
后面一些Java问题记不清了。
算法题:k个一组翻转链表。
3.18 字节国际化电商 二面 48min
项目:基础内容,大差不差,还问了如果消息事务失败,redis往回加失败等场景应该怎么办,叫给出解决策略。
分布式事务相关,问知道哪些,2PC、3PC是什么,有什么阶段什么原理,区别在哪。
手撕快排,推导时间复杂度。
两道SQL题。
算法题,二进制数组相加。
3.18 腾讯视频 一面 74min
项目:基础内容,功能是什么怎么设计的,难点以及解决方案;
怎么解决缓存不一致问题?
Kafka、RocketMQ、RabbitMQ区别,为什么Kafka性能好?
分布式的2pc,3pc,tcc等?
死锁是什么,怎么避免,处理。
五层网络模型,有哪些协议?
time_wait,close_wait是什么?
拥塞控制算法,https是什么加密方式(混合,怎么个混合法)
进程通信方式,管道和命名管道区别,共享内存怎么实现,共享内存有什么优势和缺陷,共享内存怎么解决并发问题?
Redis为什么性能好(数据结构优化实例),哈希扩容的渐进式,redis的pipeline管道,持久化rdb,aof等;
Redis为什么使用单线程;为什么又加回了多线程?
JVM运行时数据结构;gc_root,为什么gc分代?
nginx相关,轮询的方式之类的。
为什么epoll性能好,epoll的LT和RT;
Linux怎么查看top,显示的内容有什么含义?netstat什么用,怎么看磁盘容量?
算法题,两道Medium:有效括号(左括号,右括号,*);不同路径2
3.25 腾讯视频 二面 45min
项目。
之后问了些东西,网络、操作系统、Java基础等,没啥特殊的,就只记得“一个进程最多访问多少内存”这个问题了。
算法题,数组中找出出现两次的数(O(n)时间复杂度,无额外空间)。
(这里吐槽一下面试官,这道题我用链表返回结果说我用了额外空间,把结果打印出来说我时间复杂度是O(n + m)。。)
3.25 字节国际化电商 三面 45min
问我个人的基础情况。
Java基础,语言有什么特点,面向对象的思想,==与queals,后面一些没记录了。
Java并发编程,JVM等;这里的考察方式是他白板写代码让我分析问题并进行修改,有点折磨。。
算法题,单词在二位字符数组中的匹配,然后延伸了一些其他要求的实现。
3.27 阿里菜鸟网络 二面 30min
(因为到后面开系统了,一直没做笔试、测试那些东西,就一直拖到现在了。。)
成绩怎么样,计算机课程学得怎么样。
数据结构:有序链表插入一个结点,怎么优化?使用到的数据结构有哪些?b树、跳表,跳表是什么?
哈希冲突解决(其中再哈希法怎么知道是使用的哪一个哈希函数),自己怎么设计实现哈希?
有刷过算法题、数据结构题吗?项目?
项目介绍,难点,学到了什么?
3.30 腾讯视频 三面 40min
Redis单线程多线程问题。
白板写了段代码叫重构,记得有一堆if else啥的,问为什么这样重构,怎么保证正确性。
白板叫写代码,实现一个函数,输入错误码返回错误信息,如输入1返回A,输入2返回B,输入10-100返回C,输入200-1000返回D,要求代码可维护性高。
智力题,两人轮流从x个东西中拿东西,一次一个或两个,拿到最后一个的胜利,A先拿,问A必胜的策略。
3.30 阿里菜鸟网络 三面
什么时候开始学编程,计算机课程学完了吗?
问操作系统,内存管理是怎么管理的,为什么用虚拟内存,什么是内存碎片?
多线程多进程怎么创建,什么是协程?
数据结构,怎么找第k大(基于快排),时间复杂度;单向链表找是否有环,时间复杂度。
项目介绍,用过什么中间件框架,RocketMQ,事务型消息,结构、集群,来消息了哪个broker连接。
为什么RocketMQ快?
成绩情况,实习offer情况。
HR面
3.28 字节 HR面
自我介绍,毕业安排,实习时间安排。
介绍项目,是怎么做的,项目中遇到的问题及怎么解决?
日常是怎么提升代码能力的?
为什么选择走后端路线的?
学习的规划,目前是处于什么位置,以后将要怎么进一步学习?
性格特点描述?
学校压力最大的时候?怎么处理压力?
3.30 腾讯 HR面
offer选择,有没有亲属在腾讯,比较考虑哪些因素?
3.31 菜鸟网络 HR面
毕业后安排,为什么选择不读研,为什么说只会考本校?
之前实习过吗(字节),为什么选择在那,体会怎么样;之后的实习怎么考虑的(为什么想去阿里)。
未来想去哪个公司/城市,会怎么考虑。
让我最有成就感的事情;拿到几个offer,怎么学习的,最有挫败感的事情。
评价自己的优势和短板,怎么消化压力,喜欢什么运动,每周都会运动吗?
谈恋爱了吗?
反问:什么时候offer。
心得体会
面试上,开始几次面试面试前都会很紧张,但进入到面试中反而会专注于回答问题,到后面特别是已经有offer的情况下面试基本不会紧张了。
面试后一定要及时记录面试内容、及时做总结,有哪些地方是问到不会的,马上补足并再做一些延伸学习,确保下次问到相关问题一定回答得上来。这点在项目相关的问题上效果显著,可以很明显地感受到每次面试后都对自己的项目有了更深更全的理解,下次问到项目上也会更有自信了。
面试后补足学习的效率极高,所以大家一定要早面试、多面试。
心态上,稳住,与一起找工作的同学多交流,与学长多交流。我第一次面试寄了,感觉自己啥都没准备好,心态就崩了不敢投简历,可以看到我第二次面试已经是十多天后了;很感谢字节内推的学长,很热情还指导面试重点内容,面完感觉很不好还安慰、帮忙跟进进度。
之前一直都是一个人在准备、面试,有人能交流确实能在心态上有很大的作用。
准备上,再次强调信息获取能力的重要性,本科工作与读研的选择、互联网招聘的信息、选择的岗位考察的内容、需要学习和准备的内容、学习路线等,多搜集资料,个人实际经验得出相关问题都可以回答之,“网上都有”。
学习的内容上,基础的像数据结构、网络、语言一定要牢固,知识面要有一定广度(这就跟你收集到的学习资料相关了),项目多就难点进行针对性学习和准备,通过面试中问到的项目问题,你就能大概能知道面试官对你的项目的关注点在哪些地方了,当然你自己也应该清楚一些。
算法题,自己感觉我200+的准备已经够应付大部分场景了,前提是一定要弄懂每一道题,多看些题解,多做几次,做完第一遍之后再次做一定要有规划有针对性,比如先做树,再做动规,做栈相关等。(之后感觉Medium题基本都能做了,Hard题还是很hard。。)数据结构和常见算法(排序,图的最短路径,LRU等)很重要!
学习中,做好笔记,及时温故。
总结
准备面试和面试真累,本来还投了美团啥的,但已经开学了学校里笔试面试也不方便,遂放弃,直接去实习了,一个月结束战斗。
最后是选择去到了字节实习,实习真香!福利好,提升确实很大。四月初实习到现在已经四个月了,快转正了,许愿秋招顺利!
(给部门宣传一波!https://www.nowcoder.com/discuss/677478?source_id=profile_reply_nctrack&channel=-1)