前言
今天是1024程序员节,博主是2020届硕士,就在前几天刚刚结束了2019年的秋招,借此机会分享一下秋招的一些历程和心得。
秋招情况
先总体介绍一下秋招的情况,岗位是java后端,大概是投了 30多家公司,简历挂掉的只有陌陌一家,还有几个投了一直在筛选,笔试挂掉的有360,网易,拼多多(太菜了拼多多笔试了三次都没过),远景智能(这个有个英语测评,我得了个最低分估计是这个给我挂了),还有来学校的几个猫眼,绿盟,金山云等,大部分笔试还是都过了的。面试的20多家拿到了五家的offer,按时间顺序来有映客直播,华为,阅文集团(腾讯文学),瓜子二手车,百度。博主最后选择是百度,AT和其他大厂基本上都没投,一方面毕业在即另一方面自己准备也不算太充分,拿到了百度就选择结束秋招了。
备战秋招过程
下面讲一下自己准备的过程,说起秋招准备,我是属于那种起了个大早干了个晚集的那种。我是在18年年底在算法和开发纠结了一番,最后选择了开发。然后19年年初就开始准备了,因为本身有java基础,所以直接从javaweb开始看的,先看了一些jsp,servlet,session,html,js等相关的基础知识,并跟着视频做了个简单的商城项目。春节过后,先是在实验室忙了一些毕设相关的事情,然后又做了一些其他的工作,业余时间我刷了两遍剑指offer,到了五一那会儿,我开始决定做一个SSM的商城项目xx商城,跟着视频做,有时候改bug会改很久,大概用了一个半月吧,把项目做完了,就到了快七月了。期间投了两三个实习,当时很菜笔试都没过,然后就放弃实习的念头了。到了七月份我开始第一批面试,作业帮,多益网络,和字节跳动,字节是面到了二面,其余的都是一面挂掉了,然后觉得自己算法能力不强,刷了一个月的leetcode,刷了大概100多道题。然后转眼间到了八月份,八月主要面了贝壳,猿辅导,科大讯飞,依图,面前两家的时候感觉自己的基础知识学得不深入,于是中间看了一个月的书,就数据库,redis,多线程,JVM进行了深入的学习。科大讯飞和依图都是在看书的过程中面的,感觉面试效果提升很明显,问很多问题都能深入回答,虽然这俩也没过。再到后来面试越来越多,很多基本的问题已经很熟练了,然后对消息队列也进行了一些学习,学习了个秒杀的项目,对原来做的商城进行了改进。到后来面试起来就顺了很多。到九月下旬的面试通过率就很高了,基本上都能二面以后,然后拿下了几个offer,最后选择了百度也算是自己比较心仪的公司了吧。
面经
下面献出自己的一部分面经,不经常写,所以面经不是很多
- 2019/7/11多益网络 一面
- 类和接口区别
- HashMap和map的原理,HashMap 时间复杂度
- 介绍一下泛型
- 平时做过什么项目
- 使用哪些数据库 ,有什么区别
- Html会吗
- 线程安全解释一下,怎么解决
- 死锁的原因
- 对象的生命周期
- 如何实现给别人提供接口调用(API)
- 继承和组合
- 如何看待996
- 下班后同事告诉你你的代码出bug了,你怎么办
- 平时上网主要逛什么网站
- 课余接触过哪些开源项目
- 编程题:合并两个递增数组(5分钟内写完)
-
2019/7/12字节跳动ToB一面.
面试官很直接,同学你好,先来写个代码吧~~
编程题目是顺时针打印数字,剑指offer上的题目(不过我当时就做了一遍就扔那了,没想到会考这道题,当时怎么写的都忘了,就记得逐圈打印,半个小时才写出来)。
写完编程之后,面试官问当n很大(n是边长,n>100000)时,给你个坐标让你去这个回型数组中查找该位置的值,你会怎么找?分析复杂度,然后问有什么优化方法?
编程完了之后就问了几个问题:
1.用过数据库吗?说下隔离级别,分别是解决了什么问题?串行化是怎么隔离幻读的?
2.说下数据库的索引,聚簇索引和非聚簇索引区别?
3.问你些java问题,synchronized和lock区别?讲讲synchronized和实现原理,synchronized对类加锁和对象加锁的区别
4.volatile讲一下,可见性是怎么实现的?,java工作内存在什么位置?指令重排讲一讲?举个例子。
5.java运行时数据区讲一下,java堆里边放的是啥,方法区呢?
6.redis的sortedset讲一下底层实现
7.Spring AOP 讲一下,有哪些应用?
最开没怎么准备基础知识,都是知道个大概,不过代码写的让面试官挺满意的,对我评价是代码写的不错,基础知识有待提高。 -
2019/8/17 贝壳线下面试
介绍下项目,画结构图,讲讲秒杀设计,画一下流程,redis一致性,讲讲dubbo和zookeeper
讲讲毕设,讲讲决策树,讲讲深度学习
多线程:lock和synchronized,讲讲线程池原理,参数,分类
讲讲jvm模型和jmm,讲讲volatile原理
写几个linux 语句
post和get
数据库,讲讲隔离级别,索引
面试官和我本科硕士都是校友,比较亲切,对我的评价也很中肯,说基础还行,但没有亮点,当时我还不知道亮点具体指的是什么。不过我问了他很多问题,都跟我很详细的解答了,后来还把我送出去。我到后来面了猿辅导才知道自己是真的菜。
不出所料,贝壳面完五分钟出了结果,挂了。虽然很遗憾但是很感谢师兄为我解答了那么多问题。 -
2019/8/27依图一面
1.介绍自己
2.介绍项目,讲讲秒杀。
3.redis是怎么部署的(集群),讲讲主从结构,redis一个崩了怎么办,持久化讲一讲
4.编程 leetcode 72 编辑距离
5.常用的集合有哪些,hashmap,讲讲hashmap,多线程下链表是怎样成环的?头插法会怎样,尾插法会怎样?
6.聊聊concurrenthashmap ,怎么查找key,怎么查找value(遍历所有的链表或红黑树),如果一个线程从左向右查找,另一个从右向左查找会发生什么?(死锁),怎么解决这个死锁?为什么不锁节点而是锁段
7.聊聊数据库,事务的隔离级别,怎么解决这些问题?索引的类型,(B+树和哈希索引)有什么区别?B+树怎么查找叶子节点的下一个节点?Myisam和InnoDB区别,聚簇索引和非聚簇索引,他俩的非聚簇索引有什么区别? -
2019/9/2 京东一面
京东凉凉,上来就问我maven,spring,mybatis源码,然后红黑树旋转,java8的stream。问的东西都太偏重实践了,一点基础都没问,20分钟就结束了,特别鄙视我没有实习 -
2019/9/21 度小满一二面
一面:
算法题一:链表翻转
算法题二:两个队列实现栈
二面
如何排查OOM
Explain 返回参数
算法题一: 一个数出现一个其余的数出现两次,找出出现一次的数(异或)
算法题二:n个范围在1-100的数排序(计数排序)
算法题三:无限长度的链表随机一个节点,保证完全随机(蓄水池抽样)
算法题四:(只有这个写代码了)实现一个线程安全的单例 -
2019/9/20 作业帮一面
算法题一:根据中序和后序序列输出前序
算法题二:leetcode 4 两个有序数组中位数
来源:CSDN
作者:愛在梦醒时分
链接:https://blog.csdn.net/h843653844/article/details/102726606