阿里云JAVA实习面经及学习经验(附头条,美团,快手面经)

背景介绍:项目是管理系统,本科211(非科班),硕士985(非科班)。

非常感谢阿里给的机会,感谢遇到的每一位面试官,面试过程很有收获。

文末有个人JAVA的学习经验,写的比较简单,仅仅是个人的一点经验,仅供同学们参考。


字节跳动面经地址:https://www.nowcoder.com/discuss/429239
快手面经地址:https://www.nowcoder.com/discuss/426600?toCommentId=6170066
阿里巴巴面经地址:https://www.nowcoder.com/discuss/431138

21年8月22日更新:
想来字节的小伙伴可以找我内推哦
字节跳动校招内推码: 2TY6XBK 
投递链接: https://jobs.toutiao.com/s/dR1fsAu

简要版:

笔试1:两道编程题A了一道。

试2:选择题,知识点包括C++,操作系统,数据结构,数据库,JAVA。。。

一面:

70分钟,突击电话面。

基础知识,无算法题。

非常感谢一面的面试官对我的学习的热情,以及我作出的努力的认可。

一面的面试官也给了我非常大的帮助和鼓励,给了我继续面试阿里的勇气。

二面:

50分钟,P9大佬面,视频。

本来想看我的项目,但是我项目太简单。

想问我spring的源码,我学的太浅。

于是全程就问我concurrenthashmap的源码。一度以为自己凉了。

三面:

25分钟,交叉面,电话。

聊了几分钟项目。

面试官问我学了那些知识,挑一个自己觉得学的最好的知识,聊了聊。

可能是交叉面,所以整体比较放松,面试官非常有耐心,很真诚的给了学习建议。


HR面:

20分钟,视频面。

HR面的基本问题。


一面:70分钟

突击电话面试

正思考着导师布置的任务,阿里面试官打来了电话,开始了阿里一面。

0阿里面试官自我介绍

介绍了5分钟左右,部门的情况,主要的业务

1会那些操作系统

Linux会一点

说一下操作指令,怎么看cpu,看进程,看端口

2 操作系统进程间通信

3 追问了一个信号相关的问题,我不知道了。

4 io多路复用,说一说

5 面向切面编程,说一说那些场景

6 说说面向切面编程

7 给一个场景,有很多方法,找出耗时长的方法

8 spring的@autowired的作用

9 mybatis和hibernate的区别

10 C,C++了解吗(不了解)

11 python用过吗

没有,我用过matlab(笑)

12 java类加载器哪几种

12 java垃圾回收器
我先说了垃圾回收算法--垃圾收集器--比较CMS和G1。英文名词可能念的不是很标准。

13 配置过java启动设置吗

没有,我只用过-xms等指令改过JVM参数,和jinfo看参数

说说-XMS,除了-XMS,你还用过哪些指令

-XMX  -XSS  -XMN

14 说说java保证线程间同步的方法

Synchronize,reentrantlock,volatile,原子类。。。

15 说说倒计时器和循环栅栏的区别

16 说一说为什么要有JIT

17 平时怎么学习的

18 mysql聚簇索引和非聚簇索引

19 左外连接和内连接的区别

20 数据库的读写分离的作用

21  hash和一致性hash的区别,为什么要用一致性hash

22 spring boot。。。(不了解)

23 消息中间件了解吗,说说为什么要用消息中间件
24 项目中的缓存不一致怎么解决的

25 英文面试(说说你的特点,你的爱好)

26 聊了聊作为非科班,怎么去安排时间学习计算机。

工作压力大能承受嘛

反问

面试官对我的努力以及学习态度非常认可。

面试官的认可对我而言是莫大的鼓励,希望自己能一路走下去,不管发生什么。


二面:50分钟(P9面)

早上面试官发来短信,约了晚上面试,让我准备一段最能体现我水平的代码。

纠结了一天,最后还是硬着头皮,准备展示自己的项目代码。

首先自我介绍
聊了聊为什么转专业,本科阶段分数咋不高,有没有参加一些社团活动(没有)。。。。

1 面试官用共享屏幕看了我的项目,项目太过简单。
感觉面试官一下没了兴趣。
2 之后面试官说我简历上写读过SSM框架源码,让我说一说SSM框架的源码
我愣了一下,我说简历上好像没有写吧,SSM框架源码我没读过。
3 问我读过哪些源码
我当时有点懵,第一反应,ha..ha..hashmap
面试官又问,除了hashmap你还读过哪些源码。
想了想,ConCurrentHashMap, ArrayBlockingQueue。。。
那就ConCurrentHashMap吧。你给我讲一讲。
理了下思路,准备开始讲了,面试官让我在IDE上把源码打开讲。
当时差点ConCurrentHashMap都没拼出来。(一紧张,以为是Cur开头的。。。)
之后就一直说Concurrenthashmap源码,面试官主要关注点在怎么是线程安全的。
插入怎么保证安全,读写间会不会影响,怎么保证安全。。。
因为之前项目和SSM框架的源码,我都没能很好的展示。所以concurrenthashmap就尽可能的多说,把自己好的一面展示给面试官。

说了大概40分钟吧,然后面试官说时间差不多了,先这样吧。

反问。

面试官让我多参加开源的项目,多参加比较,多参加社团活动。
面完一度觉得自己凉了,没有高水平的代码展示,也没读过spring的源码。
我的朋友也觉得这次希望不大。
之后问了一面的面试官面试结果,没想到过了。


三面:25分钟(P9交叉面)

面试官介绍
面试官介绍自己是中间件部门的,这轮是交叉面。
感觉面试官很和蔼,很有耐心。更多的是让我自己去讲述所学的知识。

自我介绍

项目介绍

说说自己会那些知识
我从头开始说,(集合类,JVM,JUC,Mysql,SSM。。。)

1 集合类用了那些设计模式

2 Juc

说说怎么理解线程安全
之后面试官一直在追问线程安全问题,问我JVM堆上会不会产生线程安全问题。(大概是这个意思)
我这方面确实不太了解。就说了创建对象时候的线程竞争问题。
后来面试官说了,他其实更想我能从底层去说,如果能从底层CPU开始说,那他会非常认可。

反问

面试官很真诚的给了一些学习建议。
他让我加强学习的广度和深度。
先加强广度,多学一些技术知识。(确实我目前的会的技术还很少)
因为学习精力有限,再挑一些方面去加强深度。(我也没能做到在一些方面深入学习)

HR面:20分钟(视频面)

没有自我介绍,直接开始问问题。
hr给我感觉还是比较亲切的。
大概问题:
1 非科班的你对比科班的学生,满分5分,给自己水平打几分(3分),怎样提高剩下的两分。
2 自己的强项和优势(自律,努力,对学习有热情)
3 在阿里每个人都很勤奋,这一点不算什么优势。(做事专注度高,精力旺盛)
4 最喜欢哪一类的人
5 家庭带来的一个影响(可以说好的,也可以是不好的
6 遇到的心里落差最大的事情(挫败感最强的事情)
7 压力大能承受吗。

hr也很真诚,其实交流过程中,也能引发自己的一些思考。自己的优势,自己的性格,自己的抗压能力,到底是怎样的。


感受:

其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。
特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。
对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。
所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。



学习经验:

我在参加美团二面的时候,曾向面试官询问:校招找工作或者找实习,能不能给一些学习上的建议。
面试官回答:坦诚的说,为了找工作和为了提高技术,在学习的方向上肯定是不一样的。

我觉得我的学习路线可能就是纯粹为了找工作的学习路线,而且能找到工作,更多的是靠运气,其实本人复习,学习Java时间比较短。

各个公司面试的题目方向其实还是有一些不同的,比如头条注重算法,所以看对应公司的面经,可以有一个大概的方向。

但是具体面试会问到的题目,有一个运气的成分,我觉得还是尽可能的多准备吧,基础的问题回答出,不会的可以说说自己的理解。

1 刷题 leetcode

我首先刷了三个月的leetcode(在看基础知识前)

因为一开始比较想去字节跳动,字节跳动非常注重算法,字节跳动三次面试中,其中两次面试全程写代码,美团二面也是全程写代码。
首先要确定想去的公司看不看重算法题。对于非科班,没有项目的同学来说,有些面试官可能会更看重代码能力。

下图是本人leetcode,跟大佬肯定没法比。
我前300题基本都刷了好几遍。剑指offer也刷了几遍。

刷题的策略的话,是先按题型刷,二叉树,二分,DP,回溯。。。

然后就按顺序刷,个人感觉刷前200加上剑指offer应该就差不多了。

时间不够就前100和剑指offer,或者把面经里的题目刷了

我刚开始刷的很慢,怎么都做不出,想不到。
反复刷吧,刷几个月后,就能发现质变了,至少做过的题目都能秒了。
其实刷题还是挺有乐趣的一件事情,我觉得比背书有意思。


2 面试基础题

这部分,各种面经里多少都会提到。
本人的话是跟着Javaguide进行学习的。
我学习时间短,所以上面的知识点很多都没看,各种中间件都没有看,所以我觉得自己更多是运气好,要学习的东西还有很多。
从java基础,集合,jvm,juc,mysql,io,网络,ssm框架,redis。。。
这些都是差不多靠背的,确实很难背。

遇到新知识,可以先去B站看视频,看看博客,加深一下理解,再反复记忆。

关于学习新知识和记忆,每个人办法都不太一样,只要能记住就行了。

3 项目

这一块对于非科班来说,特别头疼。
我一开始想用慕课网的秒杀项目,项目地址:https://www.imooc.com/u/2145618/courses?sort=publish
SSM框架+redis
但是秒杀项目可能写的比较多,面试会问的点比较多。
除了这个秒杀项目外,还有一个慕课网用到spring boot+redis+rabbitMQ的秒杀,因为时间的原因,我没有看。
我纠结了好久,最终没有把这个项目写上去,而是选择一个最简单的项目,管理系统,用到的只有SSM框架。不过可以自己可以加上redis。
github上搜索SSM管理,能搜到好多这样的项目。https://github.com/search?q=SSM%E7%AE%A1%E7%90%86

这也是个人的一个选择吧,选择管理项目,对于面试官而言,基本上就是没有项目。面试官就可能问更多其他问题。
因为非科班,能接触实际项目的机会太少太少。

这个项目其实我自己也觉得不是很好,SSM的增删改查,如果各位同学有比较好的项目,可以推荐一下。


4 面试

其实面试前一直担心自己面试的时候会不会太过紧张,表达的没有逻辑,结结巴巴。
有时候会要求自己像小学生一样去背诵一些知识点,要把一些题目的全部答案都背熟练,形成一种条件反射,生怕自己面试的时候忘词了。
面试了几次之后,发现自己这些担心都多余了。
第一次面试的时候确实比较紧张,还好全程是写算法题,就是讲思路的时候讲的不好,不过面试官能听懂。
之后面试就没那么紧张了,我也不会太担心自己的表达。还是比较随意的,想到怎么说就怎么说。
尽量用词准备把,一些名词不能说错,英文名词读的准一点。。。
感觉阿里一面的时候,可能那天有点懵,英文名词读的不太好,然后就来了几分钟的英文面试。

其实还有一点,我遇到的面试官都比较宽容吧,印象深刻字节二面的面试官,问我会不会分布式,负载均衡之类的,我直接说不会,他说我现在缺乏经验,要赶紧过来实习。
如果遇到一个会怼人的面试官,可能被怼完后,面试可能就会产生心理阴影。

原本我想提高自己的面试水平,增长面试经验,我用过牛客网的AI模拟面经。
个人感觉用处没那么大,最能增长面试经验的还是真正的去面试。
每次面试都录音,面试完进行复盘。(我没录音,因为我前几次忘记了,后面几次觉得自己面试的还行,就没录了)

目前就想到这些吧,后续想到什么再继续补上。
其实学习就是一个简单反复的过程吧。
各位同学,如果有什么学习经验和想法,都可以交流学习。





#字节跳动##内推##校招##秋招#
全部评论
可以发下学习经验吗 非科班有点迷茫
1 回复
分享
发布于 2020-05-25 08:33
学多久这水平
点赞 回复
分享
发布于 2020-05-23 14:17
饿了么
校招火热招聘中
官网直投
加油
点赞 回复
分享
发布于 2020-05-23 14:18
阿里hr有说什么时候出结果吗?
点赞 回复
分享
发布于 2020-05-23 15:18
向校友学习,沾沾好远,希望明年找实习顺利
点赞 回复
分享
发布于 2020-05-23 19:05
大佬是看书学的还是看的视频学的
点赞 回复
分享
发布于 2020-05-23 23:41
同机械,你也太强了,你从什么时候开始准备转行的啊
点赞 回复
分享
发布于 2020-05-28 07:14
大佬看到你的帖子特地注册账号上来咨询一下,我也是机械非科班,请问是否方便隐去个人信息后,把你简历发给小弟参考一下,万分感谢。
点赞 回复
分享
发布于 2020-05-29 08:03
土木狗已经哭晕在厕所
点赞 回复
分享
发布于 2020-05-29 08:43
请问交叉面是什么意思呢?
点赞 回复
分享
发布于 2020-05-29 10:57
请问你写的那个spring boot+redis+rabbitMQ项目我怎么没找到呀?慕课网上的项目我感觉都不全呀?
点赞 回复
分享
发布于 2020-07-28 14:02
之后面试官一直在追问线程安全问题,问我JVM堆上会不会产生线程安全问题。(大概是这个意思) 我这方面确实不太了解。就说了创建对象时候的线程竞争问题。 后来面试官说了,他其实更想我能从底层去说,如果能从底层CPU开始说,那他会非常认可。 楼主可以解释一下怎样从底层CPU开始说吗,有点理解不了
点赞 回复
分享
发布于 2021-04-09 22:36

相关推荐

25 200 评论
分享
牛客网
牛客企业服务