字节跳动+阿里+腾讯+美团+CVTE 实习面经

链接:https://www.nowcoder.com/discuss/391046

二月初开始准备面试,刚开始准备的时候确实一头雾水,觉得自己什么都不会,踌躇了很久也没有头绪。985水硕,没实习没竞赛没论文没好的项目。好在后来慢慢地看书、看课程做笔记总结,然后再看一些面经,多参加一些面试,慢慢有了自己的节奏(别焦虑,焦虑没用,慢慢从头开始)。

很感谢带我毕设,现在在阿里的一个学长(可能我去阿里的希望渺茫了)。学长从二月就开始帮我们实验室的几个同学弄内推的事,帮我们看简历改简历,指导我们复习,对我们帮助很大。也要感谢牛客网,看面经和做题都在上面,甚至好多公司面试也在上面,所以面了这么多场之后,觉得要把自己总结的面经分享到上面,希望能帮到更多的人。


面的都是Java岗

字节跳动

已拿offer

一面

自我介绍

介绍第一个项目

项目的目的,项目的整体架构,负责模块的简单介绍

x实现(这一部分可能我没表述清楚,面试官问了很久。。。)

算法题:

给定两个数组,求两个数组的交集,且重复多少次,就打印几次

比如:[1,2,2,3,5,7]和[1,1,2,2,2,2,3,3,5,7,8],结果[1,2,2,3,5,7]

JVM内存结构?

OOM的场景?堆和栈的一些区别?

HashMap的扩容机制?存储的方式?hash后码相同时怎么处理?

线程池是什么?怎么用?有什么好处?线程池的核心参数?

数据库的索引结构?B+树的结构?与B树的区别?

Redis了解过吗?Redis的数据结构?缓存击穿是什么?怎么解决?

事务的隔离机制?四种事务隔离级别的分别是什么意思,有什么区别?事务隔离机制里用了AOP,是如何用的?

Linux的top指令可以查看什么信息?top中的load指的是什么?网络相关的指令用过哪些?查端口号用哪一个?

乐观锁和悲观锁?在数据库里怎么实现一个乐观锁?乐观锁在数据库中的实现形式?

TCP的滑动窗口机制?

Jenkins自动化部署的流程?

有什么问题要问?

二面

自我介绍

项目的需求背景,以及项目的架构,项目的实现细节

数据库的第三范式

有没有对自己开发的模块做过压测?如果让你去做压测,你会如何去做?

如果数据规模增大几个数量级,可以有什么优化?

联合索引的使用,减少回表次数

Redis缓存如何去设计缓存

redis中常用的数据结构?缓存击穿和缓存穿透

开源的DevOps平台用过吗,CICD平台?

算法题:拿糖问题

给一个数组{1,3,5,7,8,10},每个位置上数字代表每个位上有几个糖

不能拿相邻的糖,最终怎么拿最多的糖

volatile关键字的功能

Linux的buffer内存和cache内存

虚拟内存、常驻内存、共享内存路由器,交换机工作在哪一层?

ConnectTimeOut ReadTimeout异常的区别?Unknown host是什么原因导致的?

浏览器输入 www.xxx.com 最终展现网页,整个过程观察者模式

说一下zookeeper和ES对发展方向有什么想法

你有什么想问的?

三面

询问毕业时间,询问GPA和研究生研究方向

项目具体细节,介绍负责的模块,醒目的具体架构?

什么是DevOps?DevOps的使用场景?

微服务是什么?微服务的粒度?怎么去划分?

询问项目的细节

面对百万级的数据,你的模块需要怎么优化?

开发时使用的技术?有没有深入了解?

说一下GC算法?G1和CMS分别是什么,区别?

你还有什么问题?

HR面

自我介绍,对公司面试的评价,实习时间

为什么转专业?你认为你有什么优点?有什么缺点?有什么兴趣爱好?

在团队中习惯充当什么样的角色?

遇到过比较困难的事情是什么?觉得自己很幸运的事情是什么?

对于未来的规划?有没有使用过公司的其他产品?有没有转正想法?

阿里系

阿里云块存储提前批面试

自我介绍

== 和equals的区别?类的hashcode是什么?如果两个对象的hash码相同,equals一定为true吗?

抽象类和普通类的区别?抽象类和接口的区别?抽象类中一定会有抽象方法吗?

Java的IO模型?BIO、NIO、AIO概念和区别?

线程和进程的区别?有几种创建线程的方法?

如果超过线程池的任务上限怎么办?线程池中一个线程抛出异常,其他线程受影响吗?如果在try…catch…结构中,线程池中有3个线程抛出异常,catch运行几次,finally运行几次?

Java怎么保证多线程的安全?synchronized和volatile的区别?synchronized是悲观锁吗?

介绍一下ThreadLocal?有什么用处?

Java反射是什么?反射的用处?为什么要用Ioc这种方式?AOP了解过吗?AOP切面可以实现异步吗?

HashMap和Hashtable的区别?介绍一下concurrentHashMap?Hashtable和concurrentHashMap分别适合哪些场景?

Spring Boot的Bean是什么?调用接口时可以修改Bean吗?Bean有哪些种类?Bean的生命周期?

Spring Boot的过滤器,拦截器?哪个在先哪个在后?

ORM框架用过哪些?Hibernates循环插入怎么会比较快?自定义SQL语句是什么意思?

DevOps中构建是怎么实现的?代码管理如何实现的?代码改变可以触发自动构建吗?

介绍一下项目,具体负责的工作?

介绍一下服务发现?服务发现?

k8s的负载均衡?主从节点的切换?主从节点数据库数据冲突会不会造成脏读?

WebSocket怎么保证数据可靠性?

你有什么问题要问?

阿里新零售事业部供应链、蚂蚁金服花呗、淘系增长技术部

这些都只进行了电话一面,问的问题也和其他地方大同小异由于最后内推只选择了一个部门,其他部门的下一面都回绝了。。。

总的来说阿里可能要错过了,笔试做的太烂,没能跨过阿里的门槛。。。

美团

一面

自我介绍

项目介绍(10分钟左右)

权限管理设计的解决方案,K8S原理,pod是什么?

websocket是用tcp还是udp?websocket怎么实现的?

Java并发访问HashMap,怎么保证线程安全?

HashMap查询最坏情况?怎么保证HashMap整体赋值并发安全?

Java运行时数据结构与内存模型?

堆和栈保存的内容?

栈空间在什么时候进行回收?J

ava的栈大小是多少?能不能把栈中的数据都分配在堆上?

什么时候进行full GC?GC为什么要分代?

SpringBoot怎么监控接口成功率?

有什么要问的

二面

自我介绍

项目介绍(包括其中用到的一些技术等)

介绍Http协议,如何做权限校验?有状态还是无状态?

设计token时的注意要点?

单点登录了解过吗?

Socket网络编程IO模型?手写一个HashMap数据结构,实现put函数?

有没有实习经历?拿了哪些offer?

说一下职业规划你还有什么想问的?

CVTE

CVTE一面

一面电话面试,大概半个多小时,问的基本上是一些基础问题和项目,没有详细记录只记得问了一个sql语句,让我说如何去写

二面视频面试

自我介绍

项目介绍,CVTE这边问的基础问题一直都围绕着项目问的

怎么理解DevOps的?SpringBoot shiro了解过吗?为什么不用这个?

怎么在平台中获取用户的信息?token如何实现?

jwt由哪些部分组成?hibernate和mybatis区别?

为什么要用hibernate?在项目中怎么运用的sql语句的优化?

覆盖索引的B+树结构中叶子结点存的是什么数据?

不同查询场景走聚簇索引和非聚簇索引的情况?k8s集群怎么搭的?

NFS用来做什么了?MySQL和mongoDB的区别?

mq队列中消费方怎么保证不重复消费消息?怎么实现分布式事务?

http和websocket性能区别?http1.0 1.1 2.0的一些区别,考虑这些之后与webscoket有什么其他不同吗?

最近有没有在学一些新的技术?

有没有看过Java核心的一些源码?

synchronized和lock的源码,介绍一下做了这些项目,你遇到的比较大的挑战有哪些?

有什么要问的?

HR面

先是填一个补充简历问题,里面的问题。。。可以说是灵魂拷问了(我不会告诉你里面的问题比面试还难回答)

其实就是一些HR常见问题,但是可能挖掘的比较深,自己平时也没仔细想过,突然一思考容易陷入 哲学 中。。。

让你最自豪的一件事?目前为止对你影响最大的人?

最困难的时期是什么时候,怎么度过的?

期望工作的城市?期望的实习薪资?如果工作多年后实现财富自由了,想干什么其他的记不太清楚了。。。

腾讯

一面

自我介绍

项目介绍,使用语言(10分钟)

覆盖索引的优化高并发场景项目中有吗?

MySQL和MongoDB和redis的区别?

redis的数据结构?

对后台开发的理解,做server还是数据处理?

(没懂这个问题啥意思)进程和线程的区别?Java线程和计算机的核怎么对应的?

三道题(大概意思):1.区间躲避问题,要躲避的区间是[2,5][4,6],如果插入1,可以直接插到1,如果插入3,只能插到7,因为要避开上面两个区间,要求不申请额外空间2.两个链表的第一个相交结点3.400万条帖子数据,一台机器能处理10万条帖子,找到最近发布的1000条帖子有什么要问的

腾讯这边。。。一面直接给我挂了,感觉开始面试的时候不怎么对我感兴趣,加上我的题做的属实拉跨(在腾讯会议聊天框里写代码。。。),没啥好说的,不过在我写这篇文章的时候,又发邮件约我面试了。。。

目前的进度

阿里一面结束(阿里各个部门的提前面试我参加了得有七八次。。。)

腾讯一面挂,第二次流程等待一面

美团二面结束

CVTE HR面结束

360 笔试结束

快手 笔试结束

搜狗 等待一面

其他的还投了很多公司(京东、华为、网易、小米、猿辅导、招行卡中心等等,一开始就是海投),都暂时还没有消息

后续有新进度也会记录和更新,不过,大概率去字节跳动了,累了累了,真的累了。。。

总结

总的来说不要惧怕面试,面试官们都是从学生过来的,很了解我们,也都很和蔼,不用怕。

大多数面试官是真的很和蔼,不会因为学生身份没做过啥有深度的项目鄙视你,语气也是一种交流探讨的感觉,你回答问题也会积极回应你,答得不好的也会给你引导。

面试时可能会问具体场景问题,而不是死板地去问某些知识点,上面记得问题都是我复盘时候思考过再给出的问题,所以需要把基础知识消化形成体系再去拿出来。比如问分布式事务,面试官可能问的是在不同服务器上的不同线程中的操作怎么保证原子性?

下面是我觉得 无论在面试,学习还是工作中,比较重要的几点吧:

第一点 心态

不论干什么,心态都很重要,摆正态度,不卑不亢,找实习/工作这些可能本身就参杂着一些运气成分,遇到困难,微笑面对。不要因为这些事情过于影响心情,得不偿失,如果是因为疫情在家的同学们,多陪陪自己的父母,真的好不容易有这样一段时间,以后真工作了当了社畜,可能就更身不由己了,我的想法还是先学会生活,再学会挣钱

第二点 回顾

每次面试都是一场考验,不仅是对大脑记住的知识的重用和消化,也是对身心的磨练(面试真的,口感舌燥,面完很累)。那每面过一场,要想想自己哪里答得还可以,说明那部分知识掌握的不错;哪些面的不行,是掌握了没说出来还是根本就是知识盲区?建议有条件的面试都做记录,方便后面总结疏漏的知识点和常见的面试问题

第三点 节奏

作为没有特别突出的技术能力、强大的竞赛背景、高大上的奖项论文的人,我们能做的就是

  • 好好打磨自己的简历,在现有的基础上,尽量突出自己的优势
  • 复习好基础知识,基础知识扎实比什么都重要
  • 多向别人学习,吸取经验

每个人的情况都是不同的,我写的这些只作为参考,希望能从我的一些经验中有一点点收获,那我就很高兴啦你应该找到属于自己的“节奏”,沉下心来慢慢面对这些

最后

一份复习的知识要点

Java基础部分

一些基础集合类的源码要看一看并发编程与锁的实现原理JVM原理,推荐看一整本书《深入理解Java虚拟机》

数据结构与算法

了解基本的数据结构

刷题。。。

MySQL数据库

索引结构

优化的相关实践

事务,锁

语句执行原理

计算机网络

一些很常见的问题

网络分层结构

各种协议(http1.0,1.1,2.0 tcp udp ip 等等),在哪些层,有什么用,哪些区别

最好结合一下网络编程socket

操作系统

进程线程

分页分段

死锁抢占

内核用户态

IO模型等等

拓展的

一些云原生组件了解一下,用过最好

一些开源框架的源码

多思考一下在企业中的实践场景,能结合基础知识回答更好


关于面试中一些问题的解答,都写在我的博客里了:
https://blog.csdn.net/weixin_43925277/category_9751729.html
还有在牛客网上刷剑指offer的解答和思路:
https://blog.csdn.net/weixin_43925277/category_9752121.html

喜欢对你有帮助的话记得加个关注不迷路哦

还有关注我私信回复【资料】可以领取到一些个人收集的面试及电子书资料,或许对你有帮助!

字节跳动+阿里+腾讯+美团+CVTE 实习面经


字节跳动+阿里+腾讯+美团+CVTE 实习面经


分享到:


相關文章: