前言
- 四非伪一本财经院校软工专业的大三,打过ACM,但划水级别,
- 由于ACM原因,笔试基本能过,甚至有不少AK,但是面试时基本一面凉
- 三月中旬开始投简历,四月中旬开始海投,基本一面凉,深切知道了自己有多菜。
- 已拿了京东实习offer
- 仅供参考
- 仅供参考
- 仅供参考
小建议
- 建议先去牛客看几天最新的面经,而不是直接蒙头学习,毕竟你学的可能都已经落伍或不考,例如JSP、SSH、SSM这些落后技术完全没必要学。
- 没准备好不建议投大厂提前批混经验,因为会有面试记录,记录糟糕的话正式批不一定能被捞起来。
- 看书看不下去的建议去B站多倍数速刷一遍尚硅谷/黑马入门,B站最多两倍速,所以建议下载下来用2.5~3.5倍速并快进掉废话,一般一天就能过掉下面一两个知识点了。gq
- 学校差的话,尽量内推,因为内推基本
免简历筛
,也就是说至少有笔试的机会,学校差基本就靠笔试翻身了(虽然可能AK
也没面试机会) - 祝各位手握多个大厂Offer,能有机会纠结去阿里还是腾讯。
知识点(Java后端)
基础知识
- 计算机网络
- 操作系统
- 数据结构与算法
- 设计模式
Java
- 基本语法
- 集合
- 并发
- JVM(Java虚拟机)
- Spring
数据库
- 基本原理
- MySQL
- Redis
手撕算法
- 由于我是打ACM的,所以手撕算法对于我来说还是相对容易许多,阿里和腾讯笔试题都AK了,所以没花太多时间在这上面
- 剑指Offer
- 面试考原题概率极大
- LeetCode和牛客都有该题库,但建议去LeetCode刷
- 即使是ACMer也建议必刷,毕竟刷过的人可能只是象征性用半分钟发呆再敲几分钟代码无bug一次过,你没接触过可能得花两三分钟现场思考再敲出一大堆bug慢慢调试太减分了
- 个人总结(刷到42题就懒得刷了):https://www.cnblogs.com/MMMMMMMW/p/12231966.html
- LeetCode
- 题量较多,自己通过面经有选择性敲
分布式(还在学中。。。)
- 消息队列
- nginx
- zookeeper
- ....
项目
- 秒杀系统
- 无项目人员必备项目
- 网上资料烂大街
- 基本包含上述所有知识点和分布式
- 本人的项目地址:https://github.com/MMMMMMMW/seckill
参考资料
- 《Java并发编程艺术》
- 《深入理解Java虚拟机 第三版》
- 《MySQL必知必会》(简单的SQL语句)
- 《高性能MySQL》(偏厚,有选择性看)
- 《Redis设计与实现》
- 《图解HTTP》(计网建议先看这个)
- 《计算机网络:自顶向下方法》(从应用层讲到底层,强推)
- 《计算机网络谢希仁版》(这书其实还可以,结合自顶向下看)
- 《现代操作系统》
- 《小灰的算法之旅》(讲得不错,适合复习迅速过一遍或初学者)
面试经验总结
-
每次面完,用上帝视角回顾面试流程,总结一下经验。
-
笔试其实比较玄学,AK也不一定有面试机会,爆零也不一定凉,不过双非弱校也只能靠笔试跟其他强校竞争了
-
建议面试前先敲几道水题热热身,不然开局来几道算法题,一紧张还没状态,即使是水题也不一定写得出来
-
项目各方面要熟悉,多优化,烂大街的秒杀系统可以看看别人的总结
-
不懂的地方老老实实立刻说不懂,不懂很正常,但不懂装懂或拖时间就很扣分了。
-
一定要注意听清楚才回答,没听清就重新问下面试官,例如面试官问你TCP这种简单问题,你听成DCB一脸懵逼立刻说不懂就GG了
-
算法题注意审题、审题、审题,并且把自己理解的题意和思路跟面试官说说,也许讲完思路面试官觉得OK就过了,切忌二话不说直接敲代码
-
多在牛客网上的编程页面敲敲代码,视频面试一般都在牛客网上进行,且通常要求直接在网页上编程而不是本地IDE
-
把面试官往自己熟悉的地方引导,面试官通常都是根据你说的内容即兴提问,不了解的地方千万别装逼
-
放轻松,放轻松,放轻松,一紧张基本就凉凉了,很难发挥出实力
-
面试不过不一定是自己弱,但一定是某部分不行,八分看实力,二分看运气(但前提是有实力,没实力运气再好也凉凉)
- 有的面试官认为实习生基础很重要,所以狂问基础
- 有的面试官认为基础可以靠一两个月背诵,注重项目实操,深究项目
- 有的面试官认为代码能力和思维很重要,所以喜欢手撕算法
面试小结
- 前期没啥经验,也没准备好,都是一面凉
- 作为划水的
ACMer
,无基础无项目无实习,唯一有点优势的就是笔试吧,笔试基本能及格,阿里和腾讯都AK
了,虽然感觉AK
也没啥用。
公司 | 笔试 | 一面 | 二面 | 三面 | Offer | 总结 |
---|---|---|---|---|---|---|
腾讯提前批WXG | 无 | 凉 | 人生第一次面试,太紧张 | |||
腾讯提前批PCG | 无 | 凉 | 人生第二次面试,追问秒杀系统项目,但项目赶出来的,太垃圾 | |||
百度 | AC+50+0 | 凉 | 问了数据库,答得比较糟糕 | |||
网易互娱 | AC+AC+50+0 | 凉 | 感觉是没HC了,很多人都只面了二十分钟左右 | |||
京东 | 91+11 | 过 | 过 | 过 | get | 没有手撕代码,没发挥出强项 |
字节跳动 | 无 | 凉 | 注意审题,反复看题,没审题后果很严重!!! | |||
腾讯正式批WXG | AK | 凉 | 手撕代码仔细一点,别大意 | |||
阅文 | AK | 凉 | 加强Spring方面学习 | |||
度小满 | AC+72(凉) | |||||
阿里 | AK(凉) | |||||
美团 | 91+AC+AC+27+0(凉) | |||||
快手 | 凉 | |||||
奇安信 | AK |
简历凉(无笔试机会)
- 酷狗
- 拼多多
- 携程
- 网易雷火
- 建信金融科技
已投,暂无结果
- 2020/04/14 奇安信
- 2020/04/16 小米
- 2020/04/29 YY
- 2020/04/29 BIGO
- 2020/04/30 虎牙
- 2020/05/14 贝壳
腾讯
WXG
提前批一面凉2020/3/27
没想到腾讯保存简历后就自动提交了,然后15号被捞,等到21号啥面试消息都没有就自动灰了,可能是没做什么项目,就开始放下面试,打算弄个springboot项目(打ACM,但没做项目是硬伤),但是隔了几天没复习基础知识后,27号上午突然发出面试邀请,下午就面试,人生中的第一次面试,啥准备没有,太突然了。。。。。。
- 自我介绍
- dp水题
- 谈谈C/C++或Java的不同
- 谈谈你对面对对象的理解
- 说说有什么计算机网络的协议
- 谈到HTTPS后,解释下对称加密和非对称加
- TCP三次握手
- TCP为什么能保证可靠性?
一共四十分钟左右吧,主要是一道编程题和计算机网络的知识,面试官挺好的,可能是看我太紧张了,就出得比较容易,虽然都答了,但不太确定答得好不好,面试完后问了下,是微信的,过了段时间就灰了,还是抓紧时间做个项目吧。
PCG
提前批一面凉2020/04/15
上午突然打电话过来通知,下午就开始面试了,然而提前批四天后就要结束了。。。。。。
- 项目
我做的是烂大街的秒杀系统,用来凑简历的,本以为不会问,没想到一直在问细节。。。。。。。 - 两个4G的大文件,由int 32位的整数,内存2G,求文件的交集
- 整数取模,分割成为小文件
- 问还有什么其他方法吗?想了个bitmap,然而。。。
- 如何用C++实现bitmap?
- 这里血崩,我直接用了个bool数组,然后面试官就问bool字节数,我想了下,由于bool只有true和false,肯定就只有1bit了,虽然1/8字节有点奇怪,但也直接说了。。。。。。
其实C++中bool是1字节,因为字节是最小单位,所以浪费了7bit,唉。
其实用C++实现bitmap不难,用unsigned int数组即可,然后对数字整除取余找到对应位置即可。。。
总结:项目多优化
正式批笔试2020/04/26
AK,第二三题用了相对暴力的方法水过去的
正式批WXG一面2020/05/25
- 三道算法题大概三十分钟,有些边界问题没弄好,但总的来说还行
- Map
- Hash冲突
- MySQL索引
- 为什么用B+树而不是其他树
- 机械硬盘原理(这个是真不会,基本全忘了,好像也是唯一一道不会的)
- Redis缓存击穿问题
- 1小时
- 面试官应该是C++方面的
- 代码无法提交,只能自己写测试数据自己运行,但是很多题目测试数据其实挺麻烦的,所以基本得靠人眼编译debug,导致代码有些小bug。
- 个人感觉发挥得不错,面完我都以为稳了,但是秒灰,可能是Java技术栈不匹配吧
- 反思:练好白板敲代码,人眼debug,一次AC的能力
百度
笔试2020/03/29
编程题3道,做出一题半
一面凉2020/04/18
- 烂大街的秒杀系统项目
- TCP和UDP
- 如果去掉三次握手中的一个,去掉哪一个?
- MySQL索引
- B+树和Hash用哪个?
- AQS在ReentrantLock中的应用
- 一亿个树求最小的10个数,用最大堆
- 算法:多个正整数合并,求最大
总结:不会、不太熟、需要花较长时间回忆的内容直接说不会,面试官可能忙着面试,浪费时间印象不好
美团
笔试2020/04/09
-
第一题:91%,出师不利,总共花了四五十分钟,唉,其实很水的,太久没刷题了,加上不太喜欢有关时间的题目
-
第二题:思维,AC,设置一个值用来记录前面选手的最大排名,假如当前选手比前面选手排名小,显然有超过前面的选手,ans++
-
第三题:二分,AC
-
第四题:27%,输入3,输出6,猜是求阶乘,然后特判,混了点分,思路其实不难,dp[四个顶点] = sum(dp[其他顶点]) = 到达当前顶点的方案次数
-
第五题:有思路,kmp即可,但是kmp很久没用了,加上前面浪费了太多时间,没时间了,所以没做
网易互娱
笔试2020/04/11
-
第一题:九进制,给出两个含小数的数字,求他们的九进制之和
- 思路:模拟,整数部分和小数部分分开算即可,做复杂了,直接对字符串进行操作,其实应该将字符串转换成整数后再计算,花了四十多分钟才AC
-
第二题:一组员工,一组任务,员工权值 >= 任务权值时员工可完成该任务,求方案数。
- 思路:贪心,员工和任务先排序,然后按照任务从大到小遍历,员工初始化为最大,一直减到员工正好能处理该任务时,ans 乘以 当前剩余可处理该任务的员工,还要注意所有员工可能无法处理所有任务的情况,即方案数为0的情况,AC
-
第三题:并查集加模拟,50%,找了很久bug,血亏
-
第四题:貌似很多人都80%,可惜没看,以为最后一题应该是最难的,而且第三题有思路,就把时间花在第三题了,唉
一面2020/04/21
- 面到现在唯一一个对方也开了视频的面试,而且对方先自我介绍,这点强烈好评,虽然带着口罩,可能在办公室吧。
- 可能是第四次面试的原因吧,也可能是对方对方也开了视频,能看到对方反应,这次完全不紧张,可能是发挥最好的一次。
- 项目
- 抽象类和接口的区别
- C++模板和Java多态的区别
- 链表是否有环?如何找出环的入口?
- 一个大树,一个小树,问小树是否为大树的子树
总结:看了牛客面经,好多人都是相同的题目,而且时间都很短,感觉就像走走流程,估计凉凉
2020/04/30收到感谢信,凉
快手
测评2020/04/11
一些语文、统计、脑洞猜图题,共三十分钟,感觉没啥意思。
Java深圳简历挂
还没笔试就发现简历挂了,显示不合适,我就蒙蔽了。
好歹给个笔试机会呀?然后去招聘网站看了下,发现Java深圳岗位没了。。。。。。
投太慢了,没hc了。。。。。。
笔试2020/4/26
- 12+0+42+AC
- 笔试时突然来字节跳动的面试邀请电话(一直在等京东的HR面试,以为是京东的,也没敢挂),一下子把节奏打乱了。。。。
- 可能是打得最糟糕的笔试了,4题只AC一道
- 后续看到状态
不合适
,凉
京东
笔试2020/04/18
- 第一题:6长方形可否组成长方体,91%
- 第二题:不会,混了11%
一面2020/04/22
- 数组和链表本质区别?循环链表?循环链表的应用?
- 介绍平衡二叉树?深度差?如何平衡?应用?
- 操作系统cpu调度
- 操作系统文件管理?
- 线程安全和死锁?
- 了解Spring吗?Bean是单例还是多例?优缺点?
- 问题:评价下我的表现?
- 基础挺不错的,但细节方面可能有点欠缺。
- 建议:实习生注重基础,不太注重工程方面的知识,因为基础好的人,接触那些工程方面内容会很快
- 总共二十多分钟吧
- 感觉发挥还行吧
二面2020/04/24
- 自我介绍
- List和Set
- 线程和进程
- 垃圾收集?
- HTTP?状态码?
- 索引?好处?坏处?
- 事务?
- 死锁条件?如何破坏死锁?
- 简单介绍秒杀系统?是否照抄的?有没有改进?吞吐量?
- 如何学习?有看过源码吗?(这里吹了一波知乎,找书找资料首选知乎)
- 算法和工程,更倾向于哪个?(自我介绍时说过打ACM)
- 性格、兴趣、爱好
- 多久能实习?
- 大概就记得这么多了吧?
- 总结
- 25min左右
- 基本上全部秒答上来了吧?主要是时间问题,只能简单讲
- 时间很赶,各方面内容面试官说只要简单介绍就行了
- 两次面试都不涉及编程题,全是基础,不过好在也不怎么说项目,可能是项目水的原因?
- 半技术半HR面?非技术方面的东西问得也挺多的
- 问了HC,只有一个。。。。。。。
- 说了HR面时间不定,感觉HR面有戏?
- 2020/04/28更新,终于变成HR面待安排了
三面(HR)2020/05/06
- 自我介绍
- 介绍下刚刚所说的竞赛
- 竞赛期间面临的挑战
- 家人是否同意?
- 学校是否同意?
- 10min
- 面完马上变成面试完成状态
结果
offer
度小满
笔试2020/04/20
- 第一题:AC
- 第二题:72
- 后续无面试通知,凉
阿里
笔试2020/04/20
- 第一题:排序,模拟,水题AC
- 第二题:找出等级相同的点,bfs找出最短路,中途剪枝下,本来想先暴力混点分,以防时间不够而0分,没想到直接AC了
- 后续简历评估后显示
不合适
,凉
字节跳动
一面凉2020/04/30
话说,我24号投递,26号就突然打电话过来邀请面试了,可是我还没笔试过呀,而且还是官网投的,也没内推,一脸懵逼。。。。。
本来打算等5月11日最后一次笔试后,准备得完美后再面试的。。。。
- 两个数组,每行递增,每行的第一个元素都大于上一行的最后一个元素
- 项目
- 如果MySQL添加库存,再添加到Redis中,如果添加Redis失败怎么办?
- 当时没想出来,事后想了下
- 添加失败,一般都是Redis宕机的原因,这时候可以通过哨兵来更换主Redis
- 采用消息队列将消息放入队列中,等Redis恢复后再添加
总结:
一定要仔细审题
看错题了,没注意到后面的条件【每行第一元素大于上行最后一个元素】,以为只是剑指Offer中那样每行递增,每列递增。讲了剑指Offer的方法后,面试官说可以先按列二分,先按行二分,我没注意到那条件,就死活认为不行,唉。。。。。。
阅文
笔试2020/05/19
AK,提前40分钟交卷
一面凉2020/05/26
- 自我介绍
- 问了下vue和react(???当时我就惊了,以为投错岗位了?我直接说前端是突击学习的,不了解)
- Java基础类型
- String,StringBuffer,StringBuilder区别
- String常量池
- Java中的int和Interger区别,如何判断是否相等?
- 自己建的类如何判断是否相等?
- 为什么重写equal方法后需要再重写hashCode方法?
- HashMap的get和put过程
- HashMap扩容和死循环问题
- CurrentHashMap
- Java虚拟机内存机制
- 类加载机制(这里回顾时发现忘记讲双亲委派机制了,只是讲了类加载的五个步骤)
- 垃圾对象判定
- 垃圾对象清理算法
- synchronized和lock区别
- Java中默认的四种线程池
- 线程池的过程
- Spring IOC 和AOP
- AOP的作用
- Spring依赖注入的注解有哪种
- @Controller和@Service的区别(不会)
- @RestController和@Controller的区别(不会)
- SpringBoot和Spring区别
- Redis数据类型
- zset和set的区别?底层原理?
- MySQL引擎
- MySQL索引
- 唯一索引和主键索引区别
- 了解linux命令吗?(不了解,只在用的时候查一下)
- 如果用户访问网站过慢,如何查询原因?(我也不太懂,就从数据库和cpu状态分析,反正就是瞎吹)
- 有无实习经历(感觉是需要马上能干活那种)
- 大概就这些吧,还有些题目可能没记住
- 四十多分钟
- 面试的时候没感觉,复盘后才发现,居然问了这么多问题
- 狂轰滥炸,基本所有知识点都涉及一遍,甚至问前端知识,我直接说前端都是突击学习的,不是很了解。
- 体验不错,一个问题接着一个问题几乎没停过,没有问项目(项目是我的弱项,最怕的就是深究秒杀系统)
- 没有手撕算法,强项没发挥出来
- Spring方面不是很熟,但除了Spring,其他方面基本都能答上来
- 面试官后面还问了城市意向,以为稳了,我说都可以
- 看了下牛客网,有些人是一二技术面直接连着一起的,跟百度差不多,我这种只有一面的估计就凉凉了。
- 感觉hc可能不是很多,很多AK的甚至都没面试机会,能捞到面试机会练下经验就挺不错的了
- 反问环节
- 问评价:不错,但Spring和实践方面可能需要加强
- 问城市:面试官说投简历的时候不是有吗?尴尬了,说可能太久前投的,记不清了。
- 反思:
- 加强Spring相关的学习,Spring方面太薄弱
- 除非面试官提前说时间短,要求简单回答,否则尽量深入讲,自己拓展,甚至诱导面试官提出自己熟悉的问题,而不是只是回答面试官的问题而已,直到实在没什么讲的或者面试官喊停为止
奇安信
2020/06/14 笔试
- 京东虽然OC了,但还没OM,就做下奇安信笔试
- 多道选择题,两道编程题,编程题挺水的
- 一共两小时,花了42分钟就AK交卷了