转瞬间2020年只剩2个月不到了,和大家分享一下我的秋招经验【建议收藏】

时间过得很快,已经到了10月份,双节假期也结束了,从16年读研到现在将近两年的时间里,从一个Java初学者慢慢成长为一个合格的开发者,中间也遇到了很多困难。

我不是科班出身,所以是跨专业考研,所以在算法,计算机基础方面都比较不扎实,在两年的时间中也花了很多时间去弥补。当然最主要的还是在Java后端方面的学习,我尝试过很多学习渠道,也踩了很多坑,在项目里划过水,也在实习里打过杂,一路磕磕绊绊到秋招。

在春招期间我其实就下定决心不实习而选择直接走校招了,当时已经拿到了阿里的实习offer,只不过没有去,一来是因为害怕被拥抱变化,二来是对部门和评级不太满意。

所以从四月开始,我就全面开始准备秋招了,于是我做了一个三个月的学习计划,争取在阿里提前批开始前复习完毕,所以在七月的时候基本上做好了充分的准备,后续的时间基本上都花在投简历,笔试面试以及查缺补漏上了。好在今年研发岗的竞争比较小,所以也拿了几个大厂的offer,秋招总算圆满结束。

在学习和求职的道路上,牛客网帮助了我很多,为了回馈牛客和各位牛友,我也分享一下自己的秋招经历以及一些学习资源,希望能够帮助到有需要的人,特别是做Java方向的同学。

老规矩,先上图。

本文主要包括以下内容:

  • 1 秋招小结
  • 2 面经分享
  • 3 Java后端技术专栏
  • 4 Java工程师书单
  • 5 学习资源分享
  • 6 大牛博客推荐
  • 7 笔试经验
  • 8 面试经验

一:秋招小结

从七月初第一次投递简历,到九月初,整整两个月的时间,大大小小投了几十家公司,其中很多都是提前批,内推,也经历了许多的笔试,面试。

期间也拿了几个offer,包括百度,蚂蚁金服,华为,网易(网易云音乐没给offer,调到了其他部门)。有几家直接收到拒信的,包括拼多多,深信服。还有几家在等待结果,包括腾讯,头条(头条今天刚刚收到意向书),快手,斗鱼等。

当然也有一些还没面试完的公司以及待安排面试的公司,这里就不展开说了。

八月底基本上提前批就已经结束了,所以一般这段时间正式校招也开始了,各种大规模的笔试也很多,所以大家即使没有拿到offer也不要灰心,毕竟校招是一场持久战,基本上要到九月十月才能下结论。

我之前分享了很多公司的面经,其实大部分都是提前批的,很多都是直接免笔试的,因为我对算法并不是很在行,所以感觉还是比较幸运的。

包括头条拿到了白金码,也很感谢那位给我白金码的牛友。另外牛客上的招聘信息,笔经面经也让我受益匪浅,所以还是很感谢牛客这个平台,我也希望能够写一些东西来回馈牛客网和各位牛友。

二 : 面经分享

具体的面经都比较长,这里大概介绍一下面试的情况,然后我会放上面经的链接供大家查阅。

1 阿里面经

阿里中间件

一面:

1自我介绍

2项目中做了什么,难点呢。

3Java的线程池说一下,各个参数的作用,如何进行的。

4Redis讲一下

5分布式系统的全局id如何实现。用zookeeper如何实现的呢,机器号+时间戳即可。

6分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好。

7kafka了解么,了解哪些消息队列。

8想做业务还是研究。

9然后出了一道题,linux的访问权限是rwx格式的。使用一个类支持访问权限的增删改查,并且注意使用的数据格式以及方法效率,规范。给了一个多小时写题。

耗时将近30分钟。

二面:

1 介绍你做的项目和其中的难点。

2 上次面试官问的问题,反射的作用是什么。

3 数据仓库,多线程和并发工具等。

4 私有云,docker和k8s等。

5 了解哪些中间件,dubbo,rocketmq,mycat等。

6 dubbo中的rpc如何实现。

7 自己实现rpc应该怎么做

9 dubbo的服务注册与发现。

10 听说我是非科班,于是问了些排序算法

耗时将近30分钟。

三面:

三面不是面试,而是笔试,耗时三个小时,考的是Java核心的基础。但是好像不能透题,就不说了。都挺有难度的。

大概说一下就是有几个考点,Java并发的知识点,集合类,线程池,多线程之间的通信等。

HR面:

 

聊人生谈理想,HR小姐姐非常温柔,交流十分愉快。30分钟。

小问题

顺带问大家一个个人问题,中间件这种技术部门和业务部门(比如蚂蚁,菜鸟)比较起来怎么样呢,因为没做过技术研究,以前也是crud居多。

蚂蚁金服

Spring Boot相关问题:

1、什么是 Spring Boot?

2、为什么要用 Spring Boot?

3、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

4、Spring Boot 的配置文件有哪几种格式?它们有什么区别?

5、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

6、开启 Spring Boot 特性有哪几种方式?

7、Spring Boot 需要独立的容器运行吗?

8、运行 Spring Boot 有哪几种方式?

9、Spring Boot 自动配置原理是什么?

10、Spring Boot 的目录结构是怎样的?

RabbitMQ相关问题:

1、使用RabbitMQ有什么好处?

2、RabbitMQ 中的 broker 是指什么?cluster 又是指什么?

3、RabbitMQ 概念里的 channel、exchange 和 queue 是逻辑概念,还是对应着进程实体?分别起什么作用?

4、vhost 是什么?起什么作用?

5、消息基于什么传输?

6、消息如何分发?

7、消息怎么路由?

8、什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?

MySQL相关问题:

1、事务四大特性

2、MySQL的事务隔离级别

3、数据库的索引

4、数据库三范式

5、脏读&不可重复读&幻读

6、存储引擎 MyISAM和InnoDB区别

7、Mysql中有哪几种锁?

8、讲一下存储过程

设计模式相关问题:

1、请列举出在JDK中几个常用的设计模式?

2、什么是设计模式?你是否在你的代码里面使用过任何设计模式?

3、Java 中什么叫单例设计模式?请用Java 写出线程安全的单例模式

4、在 Java 中,什么叫观察者设计模式(observer design pattern)?

5、使用工厂模式最主要的好处是什么?在哪里使用?

6、举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?

7、在 Java 中,为什么不允许从静态方法中访问非静态变量?

8、举例说明什么情况下会更倾向于使用抽象类而不是接口?

并发编程相关问题:

1、Java中有几种方法可以实现一个线程?

2、如何停止一个正在运行的线程?

3、什么是Daemon线程?它有什么意义?

4、java如何实现多线程之间的通讯和协作?

5、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

6、什么是可重入锁(ReentrantLock)?

7、什么叫线程安全?servlet是线程安全吗?

8、同步有几种实现方法?

岗位是研发工程师,直接找蚂蚁金服的大佬进行内推。

我参与了阿里巴巴中间件部门的提前批面试,一共经历了四次面试,拿到了口头offer。

然后我也参加了蚂蚁金服中间件部门的面试,经历了三次面试,但是没有走流程,所以面试中止了。

最后我走的是蚂蚁金服财富事业群的流程,经历了四次面试,包括一次交叉面,最终拿到了蚂蚁金服的意向书,评级为A。

阿里的面试体验还是比较好的,至少不要求手写算法,但是非常注重Java基础,中间件部门还会特别安排Java基础笔试。

2 腾讯面经

腾讯SNG

一面:

1 有序数组排序,二分,复杂度

2 常见排序算法,说下快排过程,时间复杂度

3 有N个节点的满二叉树的高度。1+logN

4 朋友之间的点对点关系用图维护,怎么判断两人是否是朋友,并查集,时间复杂度,过程。没讲清楚

1. 初始化元素

2. 实现元素与元素间的联合操作

3. 实现查找元素所在树的根节点

4. 解决一个问题,判定两个元素是否在同一棵树上(两个元素是否相互连接)

5 单元点最短路的方法,时间复杂度

6 如何实现关键字输入提示,使用字典树,复杂度多少,有没有其他方案,答哈希,如果是中文呢,分词后建立字典树?

7 hashmap的实现讲一下吧,讲的很详细了。讲一下红黑树的结构,查询性能等。

8 Java中的垃圾回收讲一下,讲了分代,gc算法,gc root可达性分析等

9 讲一下两个项目你都做了什么把。

10 除了代码之外你还学习了什么技术,框架。

11 死锁是怎么产生的

12 线程和进程的区别

13 进程的通信方式

14 CPU的执行方式

15 代码中遇到进程阻塞,进程僵死,内存泄漏等情况怎么排查。通过ps查询状态,分析dump文件等方式排查。

16 Linux了解么,查看进程状态ps,查看cpu状态 top。查看占用端口的进程号netstat grep

17 10g文件,只有2g内存,怎么查找文件中指定的字符串出现位置。MapReduce分割文件处理。

他说可以用cat | grep 管道处理。

18 Linux的swap了解么,完全不懂。

19 Redis和MySQL最大的区别

20 讲一下Tomcat的基本架构和组件,以及请求的整个流程。说了一下connector和container架构和servlet请求过程。

21 MySQL的存储引擎,有什么区别。

22 范围1到1000的数,原本有1000个,互不重复,现多出来1个重复的数,怎么找到他,统计次数,太慢,求和相减。

23 N个糖果,每次只能取1个到6个,不能不取,你先取,请问是否有必胜策略,怎么取。

刚开始说不太记得了,面试官提示了几个例子,找出规律不能为7的倍数,每次取到只剩7的倍数个糖果即可。

二面:

1 快排的时间复杂度,冒泡时间复杂度,快排是否稳定,快排的过程

2 100w个数,怎么找到前1000个最大的,堆排序,怎么构造,怎么调整,时间复杂度。

3 一个矩阵,从左上角到右下角,每个位置有一个权值。可以上下左右走,到达右下角的路径权值最小怎么走。

先说了一下dfs递归实现。面试官说要优化。

说了一下用迪杰斯特拉的思路,说可以。

4 四辆小车,每辆车加满油可以走一公里,问怎么能让一辆小车走最远。说了好几种方案,面试官引导我优化了一下,但是还是不满意,最后他说跳过。

5 hashmap的实现,hashtable,concurrenthashmap实现。

6 MySQL的索引,B+树性质。

7 Linux的cpu 100怎么排查,top jstack,日志,gui工具

8 Linux大文件怎么查某一行的内容。

9 Redis内存数据库的内存指的是共享内存么

10 Redis的持久化方式

11 秒杀系统的架构设计

三面:

 

1 十亿个数的集合和10w个数的集合,如何求它们的交集。

集合的数字不重复。

我讲了两次循环,两次hash,以及排序或者合并等方式。。都不对。后来面试官说是对小数组做hash,然后遍历大数组即可。我完全想错方向了。

2 十亿和数找到前100个最大的,堆排序,怎么实现,怎么调整。

3 TCP和UDP的区别,具体使用场景呢。

4 TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办。

5 对于socket编程,accept方法是干什么的,在三次握手中属于第几次,可以猜一下,为什么这么觉得。

6 Linux操作系统了解么,了解一点点,就没问了。

7 对于单例模式,有什么使用场景了,讲了全局id生成器,他问我分布式id生成器怎么实现,说了zk,问我zk了解原理不,讲了zab,然后就没问啦。

8 除了单例模式,知道适配器模式怎么实现么,有什么用

9 回到网络,刚才你说到直播场景,知道直播的架构怎么设计么,要点是什么,说了几个不太对,他说要避免广播风暴,答不会。

10 Redis和MySQL有什么区别,用于什么场景。

11 问了一下最近看什么书,什么时候开始写博客的

12 问了还有几轮面试,他说这轮我可以过,有点小惊喜

四面:

三面过了半个多月,终于安排四面了。

1 自我介绍

2 项目,收获

3 Linux了解哪些,基础命令和知识。问我proc文件系统了解么,答不了解。

4 TCP和UDP的核心区别在哪,讲了滑动窗口保证可靠有序传输,UDP不可靠。TCP需要连接而UDP不需要。

5 TCP的四次挥手,time wait状态有什么意义。

6 说完这个他问我有什么想问他的了。

7 我问他为什么隔了这么久才面试,而且之前三面都只是初试,然后他说最近他在休假,所以就。。。害我担心了好久。他说接下来等HR面就行了。

HR面

1 自我介绍

2 实习收获

3 台湾交流体验

4 之前实习公司的情况,拿到offer了吗,会如何选择呢

5 排一下公司,部门,薪资和城市等因素。

6 你的优缺点,如何改进

7 学生时代最成功的事

8 你的预期薪资

后台开发工程师

大概是8月初投的简历,当时没有选事业群,第二天直接被sng捞了,抓着我一顿面试。

一周内就面完了三次面试,接着就开始无尽的等待,整整等了三周左右,终于完成了四面和HR面。

整个过程还是比较曲折的,技术面试的难度也挺大的,不过他们部门也是Java线,所以还比较有的聊。结果目前还不知道。

岗位是后台开发工程师,我没有选择意向事业群。

SNG的部门捞了我的简历,开始了面试,他们的技术栈主要是Java,所以比较有的聊。

一共经历了四次技术面试和一次HR面试,目前正在等待结果。

腾讯的面试一如既往地注重考查网络和***作系统,并且喜欢问Linux底层的一些知识,在这方面我还是有很多不足的。

三:笔试经验

提前批的笔试其实不是很多,我参加了网易,网易游戏,拼多多等公司的笔试,应该都是低分飘过。

我的算法基础比较一般,读研之前0基础,所以这方面不是很有发言权,大概说几点我的学习经验。

1 打好数据结构基础

2 先易后难,看一些基础的算法书籍,比如《图结算法》,《啊哈算法》等等。

3 剑指offer刷起来,两到三遍,做到胸有成竹

4 LeetCode刷个200题左右,记得二刷,做好总结。

5 到牛客网做公司的历年真题,熟悉题型,保持手感。
 

四 : 面试经验

面试主要考的还是你的基础知识,需要你对Java后端技术栈有一个全局上的把握,具体说起来就太多了。

我个人也总结了一些面试方面的经验,主要是一些技巧。

1 做好自我介绍和项目总结,把握你发言的主动权

2 搞清楚简历上的技术点,兵来将挡水来土掩

3 注意分点答题,思路清晰,也更容易讲清楚原理。

4 压力面下保持冷静,不要回怼面试官

5 HR面试注意常用技巧,可以提前准备。

最后:

通过以上的学习,发现今年面试的人还挺多的,针对最近很多人都在面试,我这边也整理了相当多的面试专题资料(spring、mybatis、jvm,spring cloud Alibaba,分布式等可以点下方链接)和2020最新阿里面试真题。

上述面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2020收集的一些大厂的面试真题(都整理成文档,小部分截图),有需要的可以 点击进入 查看领取资料

希望对大家有所帮助,有用的话点赞给我支持!

猜你喜欢

转载自blog.csdn.net/SQY0809/article/details/108968094