在前段时间里公司的项目基本都很闲,很多人觉得工作起来没意思相继走了,而我考虑到自己的发展,并没有裸辞,而是一边上班,另一边在面试。从3月底开始面试,面到5月底,三十家公司。因为疫情原因有些面试是远程面试,我从不打没准备的仗,我是一个喜欢总结经验的人,每经过一场面试,我都会拿个本子记录下来,或者哪些问题是自己之前没遇到过的,或者是哪些问题是新遇到。最后通过一段时间的备战,面试,拿了几家offer ,最终我入职了阿里。

而如今金九银十已经结束,想要在明年金三银四中大放异彩的朋友们如何才能做得更好呢?不要想着现在十一月份还处在懒惰的状态,不要想着临时抱佛脚想着面试前的狂补, 这样想的话你就大错特错了。小编认为只有做好充足的准备,(只能说是9分准备1分运气),才能展现出最好的自己。那么如何做才是更好的备战呢?

(1)准备简历

简历是门面,更是敲门砖,能否拿到大厂的面试机会,就要看自己的简历如何,抛开学历以外,大厂最看重简历是否有亮点,因此我们对简历内容要有准备,对自己的突出点,包括技术、个性上的亮点,要练习表达,避免临时组织语言。

简历一定要简明扼要,直击要点

合格的简历除了要有一定的美观度之外(注意所谓的美观并不是花里胡哨,这样反而会起到副作用),最重要的是一定要简明扼要,直击要点,具体来说必须包含以下内容:

  • 基本信息要全:姓名、性别、年龄、籍贯、邮箱、手机号、微信号等;
  • 教育背景要全:起止时间、学校、专业/学位;
  • 工作经历/实习经历;
  • 项目/研究课题:这个是很重要的项一定要表述简洁且把问题清晰清楚;
  • 所获奖项/个人特长

(2)提升技能

实际上我有个阿里的朋友很早之前就向我透露过,很多人认为大厂看重学历,但实际情况并不完全是,在阿里只以能力论英雄。所以,在日常生活中,通过不断地学习,提升自己的能力,努力去拉进自己与目标值的距离,这是很有必要的,也是未来的必然趋势。秋招掌握扎实的基础无疑是获得 Offer 的基础,如果能获得更高水平的技术知识和实用的企业常用技能,那么 Offer 就不远了。

关于提升技能,我的做法:

  • ①阅读实战文档

 

  • ②读一些源码

 

  • ③读一些技术笔记

 

(3)猛刷面试题

对于base不是太好的人来说,刷面试题实际上是最具有“急救”效果的办法,因此在面试阿里前,我是刷了不少面试题的,目的倒不是希望面试时能被问到原题,而是对大厂面试有一个相应的了解,清楚阿里面试会问一些什么,涉及到哪些技术栈等。

关于刷题,我有话要说:

  • ①Java核心面试知识点整理

 

  • ②算法部分(LeetCode+算法的乐趣)

 

  • ③BAT大厂面试真题+专题训练

 

阿里面试过程:阿里一面:

  • 自我介绍、自己做的项目和技术领域
  • 说一下sync的底层实现,锁优化,和lock的对比
  • 讲一下JVM参数调优详细过程
  • 为什么这么设置?好处是什么?描述gc场景,如何去分析gc日志?
  • redis数据结构,使用场景,微博场景使用redis如何去设计用户关系?
  • 线程池参数设定,为什么这么设定,作用?7大参数
  • spring的循环依赖如何解决?为什么要三级缓存?
  • 优先级队列的底层原理?

阿里二面:

  • 自我介绍一下吧
  • 聊项目
  • 结合你项目问你如何设计,提出漏洞,你怎么解决?如何改进,万一挂了?加一台机器有没有问题?如果我非要不出问题怎么办?
  • 高并发下单扣库存场景如何设计
  • rocketMQ架构设计原理
  • Dubbo框架实现原理
  • 最近读了什么书?平时怎么学习?
  • 常用的负载均衡,该怎么用,你能说下吗?

阿里三面:

  • 这一面主要问项目,给你的压力感比较强
  • 结合项目问,为什么这么设计?让你去优化,你怎么优化,引导你用一个合理的更好的方式去优化,数据库的设计等
  • 在公司做了什么事情,各个系统业务线都是做什么的,你的绩效,手写算法链表反转?

阿里四面:

  • JVM的主要组成部分及其作用?
  • JVM运行时数据区包含哪些?
  • JVM垃圾回收机制,何时触发MinorGC等操作
  • JVM的垃圾回收算法:
  • JVM 调优的工具?
  • 常用的JVM调优参数?
  • 堆栈的区别?
  • 详细介绍一下 CMS 垃圾回收器?
  • 怎么判断对象是否可以被回收?
  • 新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
  • java类加载过程?
  • 把你知道的中间件都说一下吧(瞬间懵了一下)

HR面:

  • 为什么来阿里?
  • 之前没考虑过阿里吗?
  • 毕业这么久了,你觉得自己最大的改变是什么?
  • 用一句话总结一下自己

腾讯面试经历:

腾讯一面

  1. 自我介绍
  2. TCP与UDP的区别
  3. TCP三次握手说一下(把流程说一遍,这里以为会继续问为什么不是两次或者四次,结果没有)
  4. 看你项目用到线程池,说一下线程池工作原理,任务拒接策略有哪几种
  5. 进程和线程的区别
  6. ArrayList与LinkedList的区别
  7. 线程安全与非线程安全集合说一下,底层怎么实现的(hashmap,concurrenthashmap)
  8. 数据库事务隔离级别说一下
  9. synchronized和lock区别,可重入锁与非可重入锁的区别
  10. 说说悲观锁和乐观锁的区别
  11. 手写进制转换算法,求出一个数的二进制数1的个数
  12. JAVA基础 equals和==
  13. 多线程方式、threadlocal,各种锁,synchronized和lock
  14. 设计模式、spring类加载方式、实例保存在哪、aop ioc、反射机制
  15. 类加载器,双亲委派模型,热部署
  16. jvm内存模型,内存结构、堆的分代算法、堆的分区、gc算法、gc过程。
  17. tcp ip 七层模型 rest接口规范 get和post区别,长度,安全。
  18. tcp ip的arp协议,两个同一网络的主机如何获得对方的mac地址。
  19. 负载均衡、高并发、高可用的架构
  20. mysql的引擎区别
  21. redis缓存,redis的集群部署,热备份,主从备份,主从数据库,hash映射找到知道指定节点。
  22. 了解云计算么,了解云容器docker么,容器和虚拟机的区别

腾讯二面

  1. 说一下你对哪个项目比较熟悉、为什么做这个项目
  2. 项目采用了什么架构,数据库如何设计的
  3. 数据库有哪些表,为什么有这些表
  4. 主要有哪些核心模块,模块之间如何通信的
  5. 如何保存会话状态,有哪些方式、区别如何
  6. 分布式session如何管理,你有哪些方案
  7. 学过数据结构和算法吗(当然),你说说二分搜索的过程
  8. 说一下快排的过程,写一下伪代码
  9. 了解哪设计模式,举例说说在jdk源码哪些用到了你说的设计模式

腾讯三面

  1. 说下你平时看的一些技术博客,书籍。
  2. linux 下的一些指令。
  3. 工作中你觉得最不爽的事情是什么。
  4. 说下你的优缺点。
  5. 有没有想过去创业公司。
  6. 写个 strcpy 函数。
  7. 说说你自己的性格。
  8. 给你一个系统,后台的逻辑已经实现了,但是前端加载很慢,怎么检测。
  9. 以后可能要学习很多新技术,你怎么看。
  10. 项目中遇到的困难(提前想好,并且把实现或者优化方法说清楚)。
  11. 系统的量级、pv、uv 等。
  12. 应对高并发的解决办法(分布式)。
  13. 在项目中主要负责了哪些工作。
  14. nginx 的负载均衡。
  15. 分布式缓存的一致***器如何扩容(哈希环)。

HR面

  1. 平常怎么学习的
  2. 兴趣爱好
  3. 觉得自己前面几轮面试怎么样
  4. 除了Java还研究过其它什么技术(我说AI,区块链)
  5. 跟我介绍一下区块链~
  6. 怎么看待国内区块链的发展
  7. 跟我说一下你认为最具有挑战性的项目

面经如上,有一些问题确实想不起来了,请谅解。面试题答案整理:

 

总结:

很多学历不太好的人,可能对自己没有太大的信心,实际上任何事情都有“奇迹”发生,而这个“奇迹”关键还是要靠自己去创造。无论你是小白菜鸟,还是技术大牛,日常都不能够落下学习这件事情,一旦落后下来,就容易遭到淘汰。

以上我的经历希望能够给大家带来帮助,另外自己手头上的资料整理均可免费分享,需要这些资料的朋友可以关注+转发后添加小编的vx:mxzFAFAFA即可获得免费领取方式。赶快抓紧学习的脚步学习起来吧!最后祝大家在明年的金三银四当中都能大放光彩,拿到自己心仪的Offer。

除了文中所述资料外,小编还另外整理了一些Java岗常见常用经典题库,内容覆盖面广,包含了:数据结构与算法基础,Java基础,JVM,多线程/并发,Linux使用与问题分析排查,框架使用,数据库相关,网络协议和网络编程,Redis等缓存系统/中间件/NoSQL/一致性Hash,设计模式与微服务等,

截图展示部分:

 

 

 

篇幅受限,无法全部展示出来,只能截图展示部分,还是那句话行动起来,做个向上的爱学习的人,你学的早就比别人好。赶紧关注+转发后添加小编的vx:mxzFAFAFA把资料一并带走吧!