7年开发码农,疫情期间连面美团阿里,因精通多线程拿offer定级P7

相信很多程序员都有一个进大厂的梦想,毕竟在更高的平台,接触的项目也是更为先进的,自然自己的视野也会变得更广阔。而有了这些经历经验,薪酬待遇更是水涨船高,毕竟在追求财富自由的路上,我们都才刚刚起步。

有了梦想,就要付诸实践,让梦想照进现实。在这里笔者为大家分享一位粉丝的励志经历,看他是如何一步步从CRUD,跳槽晋级阿里P7的。

交代背景

普通本科毕业,浑浑噩噩的过了四年,当走出校门后才开始为自己的未来担忧。因为不是重点,大学学习氛围本不就很好,再加上本人的一点惰性,四年时光相当于荒废了,只拿到一纸毕业证书,想来也是唏嘘。

开始工作后,因为能力不行,人还比较直,在工作中是各种不顺,想着慢慢混经验的我,终于被自己的无知打败,成了无业游民。在此本人居然还沾沾自喜,认为终于能好好休息一阵儿啦,终于不用每天加班到十一二点了。但是仅仅过了一周,面临房租、吃饭的问题,逐渐显露了出来。

每天大手大脚,毫无节制,而自己又没有了收入来源,逐渐意识到危机,于是开始了自救计划。每天上午狂练基础,下午就是各种投简历,因为实在快要坚持不下去啦···

当时对于工作饥不择食的我,很快就入职了一家小公司,从事的最简单的CRUD,一做就是五年啊。终于在今年这个特殊的时期,决定试水一下自由市场。

这一两年疫情来的猝不及防,打乱了太多人计划。本人原计划继续在公司历练几年,再想着往更高的平台去争取,但这场疫情无情的打碎了我的想法。因为疫情,很多大公司都面临裁员,更何况在经济寒冬下无数小公司了。

既然无法抗拒,那也不能随波逐流。既然哪哪也去不了,那索性在家深入自学。从Java多线程,再到RPC框架,从微服务架构,再到高并发、高扩展。狂打基础,狂刷面试题,想着奋力一搏,也进进大厂,那得多美滋滋~~~

抉择后的学习路线

Java多线程

  • 进程和多线程的概念及线程的优点
  • 使用多线程
  • currentThread0方法
  • isAlive0方法
  • sleep0方法
  • getld0方法
  • 停止线程
  • 暂停线程
  • yield方法
  • 线程的优先级
  • 守护线程
  • 等待/通知机制
  • 方法join的使用
  • 类ThreadLocal的使用
  • 类InheritableThreadLocal的使用

微服务设计原理及架构

  • 分布式架构
  • 微服务架构
  • 构建微服务架构的系统方法
  • 微服务架构的挑战
  • 服务建模方法
  • 服务拆分
  • 服务集成
  • 服务治理
  • 负载均衡
  • 数据一致性
  • 微服务架构实现技术
  • 微服务架构和研发过程转变

JVM实战调优

  • Java虚拟机概述
  • Java执行引擎工作原理:方法调用
  • Java数据结构与面向对象
  • Java字节码实战
  • 常量池解析
  • 类变星解析
  • Java栈帧
  • 类方法解析
  • 执行引擎
  • 类的生命周期

······

有了足够的基础知识作为支撑,在网上也就开始了投递简历,先后收到美团、拼多多、字节跳动和蚂蚁金服的面试通知,于是就开始了网上面试。

美团二面

一面

  1. 自我介绍
  2. 讲讲JVM
  3. Lock和Synchronized的区别
  4. mybatis用过是吧,说说mybatis底层是怎么实现的。
  5. BIO,NIO,AIO知道吗,然后又说了说select,epoll
  6. https过程说一说,为什么既要用非对称,又要用对称
  7. 写道题,二叉树右视图
  8. 反问环节

二面是在下午,早上面试官亲自打电话约时间

  1. 介绍下你之前在公司实习做的啥。
  2. 你详细介绍一下你觉得最能凸显你能力的一个。
  3. 你之前都是做的图像相关的是吧,数据库用过吗
  4. 讲讲数据库的事务吧,知道多少说多少
  5. 刚才提到了隔离级别,mysql中分别都是怎么实现的
  6. 索引了解吗,知道多少说多少
  7. 刚才提到了B+树,B+树详细说说,指针都是怎么指的,为什么能减少磁盘IO
  8. 再来做个算法题吧,给一个点集,找出在一条直线上的最多点数,我想的太简单了,重复点,浮点数精度的都没考虑到,难怪面试官让我再好好检查检查
  9. 反问环节

能感觉到自己发挥的不是很好,还是有点紧张,之后就没有下文啦······

阿里二面

有了之前失败的经历,这边就是志在必得!!!

一面

  1. HashMap数据结构? put, get过程?扩容机制? JDK1.8版本中相比1.7做了哪些优化?容量怎么计算的?
  2. ConcurrentHashMap数据结构?如何保证线程安全的?相比1. 7做了什么优化?
  3. 为什么String被设计成不可变的?
  4. 限流算法有哪些?区别是什么?令牌桶如何实现?
  5. 一致性hash算法?
  6. JVM内存模型(有些面试官其实只是上你回答内存布局) ?各个内存区域分别是做什么的?有哪些是共享的?
  7. 年轻代,老年代区别?垃圾回收算法分别是?垃圾回收器有哪些?
  8. CMS具体的工作流程? G1与CMS区别?
  9. GC Root对象有哪些?

明显感觉难度提升,但发挥还算不错。

二面

  1. spring和Springboot的区别。
  2. Spring中bean的加载,Springboot没有配置 包路径,它是怎么实现包路径扫描的。
  3. Spring注解原理。
  4. SpringdataJPA和Mybatis的区别。
  5. 类加载机制? tomcat为什么打破双亲委派?
  6. 线程池有哪些?一般怎么用?这些参数的意义是什么?
  7. 线程通信的方式?
  8. Thread有几种状态?
  9. sleep与wait区别
  10. volatile作用?原理?

因为比较熟悉多线程,中间虽然有卡顿,但还是在面试官的指引下答了出来,感觉问题不大。果然在几天后,收到了阿里的offer。

换做是你,你能答到什么程度呢?

笔者根据这几次面经,整理了一些常见面试题,希望能帮到有准备面试的朋友。

大厂真题

专项面试题

有对这些面试真题感兴趣的,想要深度学习的朋友点击下方资料获取方式即可免费获取啦!

后记

面试造火箭,工作拧螺丝。只有把平时基础做好了,自己能力上去后,就有更多的可能性去选择自己想要的工作生活。最后预祝大家都有一个美好的前程~~~

喜欢笔者请多多点赞评论转发,关注笔者,后续笔者会再带来更丰富的学习内容更新,真心希望能够帮到大家更好的提升自己~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值