四跨考生的面经合集(阿里、腾讯、头条、英特尔、星环、视源)

开篇简介——
这篇文章既是一打春招实习的个人面经合集,也是一份个人心路历程与成长经历,也希望会成为一个小小的励志故事!
1年前的今天,我尚在老家一家土木设计院工作,经历完为期9个月的“边工作边跨考”炼狱生活,刚刚得知自己被心仪高校录取;
7个多月前的今天,我以四跨考生(跨城市、跨学校、跨专业、跨年龄)的身份进入软院,比同学空长两岁,专业能力方面几近一贫如洗……
近1个月来实习面试的收获——CVTE offer、星环科技 offer、英特尔 offer、宇宙条抖音offer、蚂蚁四面结束后进入无尽等待中,华为面试结束等待流程中。。。
感觉自己各场面试一路走来运气还是比较好的,同时也想感谢一直以来陪伴我的的牛客平台,在这里发波面经合集以表回馈!
我准备面试是寒假开始前一周左右开始的,前期以基础知识的复习为主,后期以算法强化训练为主,投递岗位是后台开发岗。【正文后面有我的个人学习方法小结,拿出来分享,欢迎交流或指正!】
下面是我经历的大部分面试的面经(习惯每次结束后立即记录),希望能帮到大家,也希望大家能互帮互助!
开篇前有句话一定想说一下(本人素来爱喝鸡汤,今天反过来灌一次鸡汤)——跟我一样跨考入坑的兄弟们、或者其他原因而基础不佳、曾一度自卑的兄弟们,别灰心,别泄气,记住“苦心人,天不负”!这个世界很残酷却也很公平,不甘落后就须超越,路永远在自己脚下,付出别人的双倍努力,终究是可以改变自己的!~

鸡汤结束,正文开始——

CVTE

3月6日(19:00——20:30)笔试

【1-20】 多项选择题

Java基础偏多——hashmap拉链法平均访问次数、深度遍历可能的路径数量、四种引用类型、抽象类、包装类之间==的比较、控制台输入输出问题

【21-22】 算法两题(不能本地IDE,只能手撸白板,且代码不能跑)

1、给一个整型数组,求其中出现频率大于总个数的1/3的元素列表

2、解码方式,1—A 2—B...26—Z,给定字符串,问有多少种解码的方式(如:12——2种【1,2】【12】,56——1种【5,6】)

【23】 系统设计题

C公司有很多部门,每个部门负责不同的业务,如短信推送业务、验证码业务、人脸识别业务等等。

现在要求设计一个公共管理平台,将这些业务整合到一起,这样外界可以通过这个平台调用公司的各项业务,要求考虑安全方面等。(我全程以设计模式的角度去答的。。。2333)

3月8日(16:00——16:30)一面

简单介绍一下你自己
讲一下你做的比较好的一个项目
sonarlint用过吗?
没事,建议用一下,比sonar cloud好用(编程时直接能看到效果)
手撕算法题,给定一个整数数组,需要将所有数打乱顺序后重排列(以String拼接的方式),问这样拼出的数最小时多少
手撕算法题,10个人编号1-10,一女一男排列,女位奇数男为偶数,第一个女生4岁,男生比前一个女生大两岁,女生比前一个男生大一岁,问第十个人多少岁?
数据库的存储引擎了解哪些?
发现查询语句太慢怎么优化?
有没有什么要问我的?

3月8日(17:00——17:30)二面

说一个你最近在做的项目
说一下mybatis的实现方式
spring的IOC、AOP
Spring的源码看过吗?
数据库优化了解吗?
了解多少种不同MQ吗?Kafka和其他MQ的区别?
Kafka靠什么实现高性能吗?
Kafka当初因为什么而出现的?主要用于哪个场景之下?
手撕算法题,找出数组中和为给定值的两个数(找出一对即可),复杂度如何?能否降低?

HR面(一个面试官对2~3人,轮流答)

之前有拿到过别的OFFER吗?
了解我们CVTE公司吗?(然后狠狠给我们介绍了一遍公司业务及前景)
说一件你曾经很努力但却失败的事
说一段你觉得压力很大的时期,以及你怎么排解压力的呢?
你的父母性格、职业、以及对你的期望?
如果我们给了OFFER,你可能会因为什么原因拒绝呢?
你的期望工作时间、地点、期望工资是多少?
你有问题要问我吗?

阿里云产品

3月8日(19:45——20:15)电话面试

1、ArrayList是动态可扩展的吗?底层是什么?为何每次动态扩容都是乘2?是否线程安全?怎么让它线程安全?
2、MySQL的索引说一下?(三种)
3、myisam和innodb的区别?
4、索引的好处?何时用何时不用?
5、ACID特性详解一下
6、线程的实现方式有哪些?
7、线程池的使用方式?用了有何好处?
8、算法——N!中0的个数
9、MYBATIS是什么?
10、AOP的作用?场景?

估计由于是海选淘汰,电话面的不算很难。。。

Intel

电话面试1

1、如何判断单向链表有没有环?
2、如何找出有环的单项链表的环入口位置?
3、Linux的高级命令?(sed awk)查看CPU使用率的命令?查看网络流量的命令?VIM了解吗?
4、大规模提取数据的工具知道吗?(sqoop flume)
5、10000个节点在进行数据采集,其中一个节点坏了怎么去发现?其中某些节点有延迟的话怎么发现?
6、一个系统面临大量请求的情况,怎么写代码能让服务器减压?注意不能使用框架、缓存、消息队列等中间件哦
7、一个机器上跑了多种不同业务的应用,假设这台机器上的缓存是可分配的,请问根据什么分配这台机器的缓存?如果根本不知道这些业务是什么的话怎么办?

电话面试2
(邮件发我一篇寻找CPU性能瓶颈的英文文献)

1、询问我对论文的理解。

2、哪些性能瓶颈算性能比较好的体现?

3、确定性能瓶颈后怎么实现优化(比如发现瓶颈是缓存mem-bound)?哪类数据容易mem miss?不改变缓存大小的话可以采取哪些措施?

反问——我询问面试官有关Intel中国的部门情况

电话面试3(两面试官轮流面)

1、先是述说了一遍我对CPU文献的理解

2、用spark做过的机器学习项目,数据预处理?建模?为什么用***回归?怎么验证模型准确定性?

3、知道我主攻的是Java就问了我Java的GC机制

4、偏向于做哪一块?

HR电话

1、约定入职时间

2、实习时长

3、薪资

4、需要入职前体检

5、部门

6、发我邮件,进官网填写入职申请

腾讯

电话一面(数据平台部)

1、自我介绍。
2、项目详细流程介绍。期间设计了哪些表?怎么实现新增景点?怎么获取到用户的微信身份信息?
3、项目介绍之spark三项目详细介绍。(streaming、graphx、mllib)
4、spring boot内置服务器?单元测试?配置文件内容?说几种常用注解?
5、设计模式说一下,详说三种你熟悉的。(单例、适配器、装饰者)
6、数据库优化策略说两种。(SQL优化、索引优化)
7、垃圾回收GC介绍一下?(标记、JVM运行时数据区、堆内存结构、垃圾回收算法、垃圾回收器)
8、springmvc与spring boot的区别?
9、线程生命周期?怎么使用线程池创建线程?
10、IO与NIO区别
11、Java1.8的新特性(hashmap、GC永久带等)
12、有什么要问我的吗?(实习时间、地点、后续通知、部门技术栈)

电话一面(微信事业部)

1、code share上四道题一小时内完成!

S1中去除S2中出现过的元素

合并两条有序链表

求二叉树是否存在路径和为某一给定值的路径

求数组中a[i]&a[j]的最大值(i!=j)

2、OSI七层模型详解

3、IPC的几种方式以及各自的应用场景

2、问我MySQL的容错性、主从分离的详细种类

电话一面(广告测开部)

测开偏离个人规划,婉拒

星环科技

一面

介绍最拿手的项目

JIRA?(懵逼)项目与事务跟踪工具,类似于我用的visial paradigm用户故事软件

ioc机制

aop机制

DI的方式(构造方法、setter方式、注解方式、接口方式、工厂模式方式)
动态***两种方式的区别(CGLIB与JVM自带方式的比较,前者低耦合但需要实现接口)
maven中东西的生命周期(懵逼)
【算法】手写二叉树的非递归版前序遍历(反应迟钝)
数据库MySQL与mongodb区别,哪种表查询快?mongodb有索引吗?内部怎么存储的?(mongodb查询更快,它启动后可以把磁盘数据加载至内存)

意向锁?间隙锁?

二面

函数重载重写区别

重写方法时的访问权限要求

Java中的容器、并发容器、hashtable内部实现原理

synchronized怎么修饰?reetrantlock的可重入好处?与sychronized的区别?

CAS算法的实现机制

concurrenthashmap的底层数据结构?以及1.8对它的优化?(尾插、红黑树)

B+、 B、 平衡二叉树 、AVL树、红黑树的区别

表连接由哪几种?笛卡儿积用哪种?

数据库索引的数据结构类型?为何用B+不用B?

数据库的隔离级别?分别解决的问题?封锁协议?

数据库锁的粒度以及区别?

springmvc的详细处理过程

IOC反射的过程?

javabean的scope有哪几种?默认是单例吗?不想让它是单例,而是每次装载时都新new一个对象的话scope怎么设置?(scope="prototype")(singleton/prototype/request/session/globalSession)
application.properties中配置的属性怎么才能让应用程序读到呢?提示:对于底层已配置有的KEY可以直接编写配置文件来设置,但是自己仅仅想为本应用配置一些框架底层没有的KEY的话怎么办才能让程序读取到?

(@Value可以把application.properties或application.yml中的自定义属性加载过来,并传值给注解的相应类型。通常用于有多种不同环境,如application-test1环境,application-test2环境……并通过在主application文件中使用spring.profiles.active=testi来任意更改运行环境)

mybatis与hibernate的区别?

mabatis使用的机制是啥?怎样从DAO到SQL的map映射的过程了解吗?(大致为用动态***、工厂模式、建造者模式等,创建对象后进行赋值的过程)

mabatis的缓存机器缺点?

Java内存模型的工作区详述?

成员变量的存储位置?局部变量的存储位置?静态变量与常量呢?

垃圾的判断?GC roots?

maven的<dependencies><dependencies management>差异?

redis的数据类型及其特点?过期设置方式?持久化方式以及比较?

Kafka的特点?topic的数据组织形式?

spark的核心特点与优势?生态系统?

反问——实习时间?(至少我们南京base没有要求)部门业务?(我们是南京BASE的,主要做B2B的后台开发,成立不久,还在扩展期,针对不同企业要求制作不用产品,接触的产品面比较广)表现漏洞?(答得不错,不出意外给OFFER)建议发展?(选自己喜欢的吧,都不错的)AI与后台的发展?(总在变化)核心部门?(大数据与AI)南京BASE?(50人今年将扩大至200人)

蚂蚁金服

一面 (35分钟)

自我介绍

介绍项目

MySQL索引、Innodb与myisam特性及好处、数据库事务特性、事务隔离级别

reetrantlock与synchronized的区别?性能差异?

线程池的使用?关键参数有哪些?应该怎么设置较合理?

TCP三次握手?拥塞控制慢开始算法?

JVM的内存模型、垃圾回收机制详述

Java类加载的过程

如果能过的话一周内会再次电话面试

二面 (90分钟)

一小时代码(一道金融题。。最长递增子序列开始结束位置、层级部门的表结构与领域模型设计题)

15分钟简短问题(项目介绍、项目所遇困难、分布式锁)

反问——对我的评价,还有几轮?

三面(35分钟)

个人成长经历的介绍,为何选择转行、跨考

证明自己学习速度与效率的事情、觉得与科班同学的差别

介绍了项目,srum模式的好处与体会,以及对于项目扩展性和后期维护性的思考

当某些进程突然消失了,可能会是什么情况?

客户端与服务器用BIO建立长连接后通信时的线程数量、用NIO建立长连接后通信时的线程数量?

线程池各参数的意义(举例考察我),觉得线程池这样设计完美吗?

多线程协作的代码经历(除了wait notify)——join、countdown latch、cyclic Barrier、sephamore等

近一个月的代码量?——少许项目代码、主要刷算法题

四面(45分钟)

1、自我介绍

2、Java中的所有数据结构

3、treemap底层数据结构,扩容,插入删除效率?

4、hashmap负载因子、扩容原理、rehash过程、原来的hashmap怎么处理?

5、hashmap的线程安全性?hashtable与concurrenthashmap(1.6&1.8底层的不同与改变)

6、Java里为什么有线程安全问题?如何解决?

7、多线程的内存模型JMM?内存屏障等

8、Java1.8新特性有哪些?(说了数据结构、JVM、函数式编程)

1.9新特性?

(Java 平台模块系统的引入,创建出只包含所依赖的 JDK 模块的自定义运行时镜像,极大的减少 Java 运行时环境的大小)
(jshell 为 Java 增加了类似 NodeJS 和 Python 中的读取-求值-打印循环,在 jshell 中可以直接输入表达式并查看其执行结果)
(在集合上,Java 9 增加 了 List.of()、Set.of()、Map.of() 和 Map.ofEntries()等工厂方法来创建不可变集合 )

9、Java体系中掌握比较好的和有待提升的方面分别是什么?欠缺的方面可能会面对什么挑战呢?

10、做一个高并发高性能的项目的话,需要怎么才能提升服务器性能?(架构、中间件、数据库)

11、redis的路由怎么实现的?实际它使用的哪种算法实现?

12、框架的学习情况?学校的学习课程?

13、微信聊天,A给B发消息背后的实现原理?点击某人后怎么精准地发给这个人?如果对方离线消息存哪里?上线后拉消息还是推送消息?网络上怎么推送到用户栏的?地址端口号不停变更的话怎么推送?上线并建立长连接后从手机操作系统层面说说微信程序是如何能拿到网络上传来的消息的?

14、搜索中智能联想功能的关键实现与技术有哪些?存储关联词语的数据结构用什么实现?相关提示语不断改变的算法用什么?(考虑的维度有哪些)这个东西实际落地的话应该再考虑哪些?

15、推荐算法了解吗?深度学习的介绍?(神经网络的训练过程与注意问题、决策树、随机森林等)

16、平时的学习方式方法?效果怎样?

17、实际做项目需要额外考虑哪些模拟项目中没有的?(说了并发技术、数据库海量数据、安全性考虑、加密算法、分布式架构设计、RPC远程调用等)

18、反问1——评价【理论熟练,实践方面偏少】

反问2——这是哪一轮?【目前还是内部面,还没到交叉面,后续还有1到2轮面试,等后面联系】

华为官网批次现场面试

一面(25分钟)

自我介绍

项目(介绍、安全性已并发行展望);多个管理员权限不同时的控制措施——AOP与切断点考虑

spark项目(简单说了下spark streaming的场景、做法)

二面(15分钟)

(晚饭点到了,面试官一遍啃面包一边问我……)

自我介绍

自己的优缺点

项目介绍,我做了什么功能点

感到沮丧的时候

期望工作城市

问他问题——内推批与常规批的区别、我选的城市与岗位可以满足吗、公司项目能做毕业论文吗

字节跳动一面(30分钟)

1、进程线程的定义与区别

2、乐观锁与悲观锁的含义与区别

3、数据库事务隔离级别、MySQL实现它们的具体方式

4、非递归先序遍历二叉树(说了两种方法)

5、层序遍历二叉树

6、实现带有求最大值功能的栈,要求时间复杂度为O(1)

7、求n数组中最大的m个数(说了三种方法)

8、给出两个单链表的头节点,求他们的公共子节点(需要考虑有环)

——表现如何?挺不错的!!!(真开心)

——何时下次面试?HR两三天之内会给我答复

二面(50分钟)

影响服务器接收请求数量的因素有哪些?

I/O模型五种详解

代码题——给出一个n*n数字矩阵,寻找一条最长上升路径,每个位置只能向上下左右四个位置移动。

代码题——2n个人围成一圈, 两两握手, 没有交叉,一共多少种握手方式。

三面(55分钟)

hashmap底层实现?hashtable?concurrenthashmap?

hashmap多线程下可能存在哪些问题?(说了数据不一致、扩容时浪费内存、可能有死锁等)concurrenthashmap扩容过程?

代码题——mysql与redis实现乐观锁、悲观锁、分布式锁的代码 代码题——返回无序数据流的实时中位数

四面(60+分钟)

项目中我主要负责的业务?数据库ER图?哪些地方加了索引?联合索引了解吗,说一下它底层的实现?

数据库索引介绍?B+的好处?

快排与归并的比较?如果要排序的数组中有大量重复元素的话怎么优化算法?

逻辑题——岛上n个人,有人红帽有人白帽,每人只能看到别人头上的帽子,且彼此不能交流,如若确认自己是红帽子的话可以离开岛。有经过的渔民说了一句“你们中至少一人是红帽!”请问接下来发生什么情况?

代码题——k个链表排成一条值递增的有序链表

大学期间让我有成就感的事?

何时能实习?

反问——语言(用GO)


复习方法

在此交流一下自己的复习方式吧——
1、【基础知识】主要以由点到面的方法进行的,我先将知识点归为Java基础、JVM、Java并发、数据库、设计模式、spring框架系列、中间件(Redis、Kafka等)、分布式、微服务、计算机网络、操作系统这11个大模块,然后由浅入深逐个进行“深度优先”的复习。此过程比较长,我喜欢手写笔记,所以会有大概4~5本笔记本的记录,个人感觉这样比写电子笔记记忆印象更深。并且我在认为自己真正理解一个知识点之前,不允许自己把它写下来(所以可能有时候半天没能写一页笔记)。这方法不算聪明(比较费时),但还算比较踏实~做完这些,感觉自己的知识体系已成,就开始看各种复习资料和面经,对自己的笔记不断润色和修补。在我看来,外部资料适合用来给自己“建造”的知识体系“添砖加瓦”,却不适合直接一开始就拿来当作骨架结构(原谅我原是土木娃,举例子时常想到这些,23333)。
2、【算法】算法这一块我主要以剑指offer为主,感觉上面的原题或类似题的出现频率还是比较高的。刷了两遍,第一遍以不择手段通过为目标,第二遍以独立通过与性能优化为目标。除此之外,我会找一些特定类型的题类做针对性训练,如二叉树系列、链表系列、动态规划系列、九大排序系列等,把每个系列中的关键算法都写一遍(最好后期再去温习下),知道算法的优劣对比、时/空复杂度等情况,一般就比较可以啦。当然如果有多余的时间再可以刷刷 leetcode TOP100这样子~
3、【项目】项目这一块要特别感谢母校!让我在半年的时间里参与了多个项目,虽然是课程实践,其难度、规模、用户量都不大,但认真做下来对我的帮助还是很大的。感觉课程实践的项目认真做、多做是非常有益的(尤其对跨考生哈)!
4、【补充】多接触点看似与自己非直接相关的技术,虽然可能看不到眼下的直接用途,却很可能在未来某一天帮到你自己!开学前我学习了一小段时间的深度学习,在20几场面试中居然被问过两次;开学后有门课程要求完成几个spark系列的项目,比较繁琐,当时退课的人不少,然其知识点在面试中也是多次被问到了。
5、【综述】这一切方法建立在肯花时间的基础上,时间是有限的,相信没有人不羡慕自在潇洒的大学生活,但有得必有失嘛,我们追求想要的东西是要付出代价的!所以,先想清楚自己想要什么是这一切的第一步!

结语

坦白说直到现在本人的实战水平还是比较嫩的,毕竟才入坑半年(跨考生的知识与项目沉淀真是硬伤!),但与半年前的自己相比,我能明显地感觉到变化!
面试的小成果算是对自己半年来学习的一个比较nice的交代吧!不过对于自己的水平我心里还是有一棵“茁壮成长”的B树的,尤其较之科班大佬,弱在实践!就在实习期间继续加油把!
我希望每一位有梦想、不服输、或暂时落后的伙伴们,可以在最难的时候,没选择放弃、妥协和将就!可以在感到自己最渺小的时候,懂得隐忍、付出与坚守!可以在自己最疲惫的时候,告诉自己这一切不是毫无意义的,请相信“今天很残酷,明天更残酷,明天的明天会很美好”!可以在最寂寞的时候,想想“延迟满足感”,告诉自己未来在那里等着你,只要你足够相信,哪怕你暂时看不到它!
至于动力,其实跨考生应该是不缺这个的,我们走了“弯路”,没有理由不把每一天过好!如果是同样踏上过工作岗位的小伙伴们,当然更能明白,拥有一整天的学习时间是一件多么奢侈的事!
一路走来,牛客面经看过很多,帮了我不少,这一篇合集作为回馈以表感谢吧!很喜欢咱们这个互助的大家庭!😀

#英特尔##字节跳动##广州视源电子科技股份有限公司##星环##面经##实习##Java工程师#
全部评论
感谢分享,兄弟你真牛掰!佩服佩服,收藏了,学不动的时候拿出来看看
点赞 回复 分享
发布于 2019-04-18 20:42
老哥很强,半年学这么多?
1 回复 分享
发布于 2019-04-18 14:38
边工作边学习,上南大软院。 半年的沉淀学习所呈现的水平完全不必科班生差啊。 学习能力真的好强啊,羡慕。
1 回复 分享
发布于 2019-04-18 15:33
老哥,想请教一些问题,同是非科班生,在Java学习的时候那些SSM框架各种配置完全懵,就算照着资料敲一遍,基本也是没一会就忘了,求教有没有什么学习建议?Java后端SSM框架一定要精通吗
点赞 回复 分享
发布于 2019-04-18 20:59
优秀优秀
点赞 回复 分享
发布于 2019-04-18 12:44
太强了,南大软院的吗
点赞 回复 分享
发布于 2019-04-18 13:57
点赞 回复 分享
发布于 2019-04-18 15:01
老哥太稳了,谢谢分享
点赞 回复 分享
发布于 2019-04-18 16:19
点赞 回复 分享
发布于 2019-04-18 16:20
tql 
点赞 回复 分享
发布于 2019-04-18 16:45
nbnbnb
点赞 回复 分享
发布于 2019-04-18 19:38
大佬
点赞 回复 分享
发布于 2019-04-18 20:05
不容易啊
点赞 回复 分享
发布于 2019-04-19 00:13
楼主好强好强好强,榜样!
点赞 回复 分享
发布于 2019-04-19 05:19
好厉害。我也是土木工程转专业,要向你学习啦。同样是半年感觉我只学了你的1/10。。惭愧
点赞 回复 分享
发布于 2019-04-19 05:54
老哥好强啊,话说土木设计院不用加班996的吗😂曾经我也是土木狗🐶
点赞 回复 分享
发布于 2019-04-19 11:23
看完又动力满满啦~
点赞 回复 分享
发布于 2019-04-19 13:30
我也打算边工作边考研。楼主斯阔一!大佬优秀
点赞 回复 分享
发布于 2019-04-19 14:13
厉害啊厉害,佩服
点赞 回复 分享
发布于 2019-04-19 14:28
太强了
点赞 回复 分享
发布于 2019-04-19 14:36

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
像好涩一样好学:这公司我也拿过 基本明确周六加班 工资还凑活 另外下次镜头往上点儿
点赞 评论 收藏
分享
67 459 评论
分享
牛客网
牛客企业服务