在前段时间里公司的项目基本都很闲,很多人觉得工作起来没意思相继走了,而我考虑到自己的发展,并没有裸辞,而是一边上班,另一边在面试。我是一个喜欢总结经验的人,每经过一场面试,我都会拿个本子记录下来,或者哪些问题是自己之前没遇到过的,或者是哪些问题是新遇到。最后通过一段时间的备战,面试,拿了几家offer ,最终我入职了阿里。
而如明年的金三银四也不远了,想要跳槽的小伙伴,和想要在金三银四大放异彩的朋友们如何才能做得更好呢?不要想着现在才12月份还处在懒惰的状态,不要想着临时抱佛脚想着面试前的狂补, 这样想的话你就大错特错了。小编认为只有做好充足的准备,(只能说是9分准备1分运气),才能展现出最好的自己。那么如何做才是更好的备战呢?
(1)准备简历
简历是门面,更是敲门砖,能否拿到大厂的面试机会,就要看自己的简历如何,抛开学历以外,大厂最看重简历是否有亮点,因此我们对简历内容要有准备,对自己的突出点,包括技术、个性上的亮点,要练习表达,避免临时组织语言。
简历一定要简明扼要,直击要点
合格的简历除了要有一定的美观度之外(注意所谓的美观并不是花里胡哨,这样反而会起到副作用),最重要的是一定要简明扼要,直击要点,具体来说必须包含以下内容:
- 基本信息要全:姓名、性别、年龄、籍贯、邮箱、手机号、微信号等;
- 教育背景要全:起止时间、学校、专业/学位;
- 工作经历/实习经历;
- 项目/研究课题:这个是很重要的项一定要表述简洁且把问题清晰清楚;
- 所获奖项/个人特长
(2)提升技能
实际上我有个阿里的朋友很早之前就向我透露过,很多人认为大厂看重学历,但实际情况并不完全是,在阿里只以能力论英雄。所以,在日常生活中,通过不断地学习,提升自己的能力,努力去拉进自己与目标值的距离,这是很有必要的,也是未来的必然趋势。秋招掌握扎实的基础无疑是获得 Offer 的基础,如果能获得更高水平的技术知识和实用的企业常用技能,那么 Offer 就不远了。
关于提升技能,我的做法:
(3)猛刷面试题
对于base不是太好的人来说,刷面试题实际上是最具有“急救”效果的办法,因此在面试阿里前,我是刷了不少面试题的,目的倒不是希望面试时能被问到原题,而是对大厂面试有一个相应的了解,清楚阿里面试会问一些什么,涉及到哪些技术栈等。
关于刷题,我有话要说:
- ②算法部分(LeetCode+算法的乐趣)
阿里面试过程:阿里一面:
- 自我介绍、自己做的项目和技术领域
- 说一下sync的底层实现,锁优化,和lock的对比
- 讲一下JVM参数调优详细过程
- 为什么这么设置?好处是什么?描述gc场景,如何去分析gc日志?
- redis数据结构,使用场景,微博场景使用redis如何去设计用户关系?
- 线程池参数设定,为什么这么设定,作用?7大参数
- spring的循环依赖如何解决?为什么要三级缓存?
- 优先级队列的底层原理?
阿里二面:
- 自我介绍一下吧
- 聊项目
- 结合你项目问你如何设计,提出漏洞,你怎么解决?如何改进,万一挂了?加一台机器有没有问题?如果我非要不出问题怎么办?
- 高并发下单扣库存场景如何设计
- rocketMQ架构设计原理
- Dubbo框架实现原理
- 最近读了什么书?平时怎么学习?
- 常用的负载均衡,该怎么用,你能说下吗?
阿里三面:
- 这一面主要问项目,给你的压力感比较强
- 结合项目问,为什么这么设计?让你去优化,你怎么优化,引导你用一个合理的更好的方式去优化,数据库的设计等
- 在公司做了什么事情,各个系统业务线都是做什么的,你的绩效,手写算法链表反转?
阿里四面:
- JVM的主要组成部分及其作用?
- JVM运行时数据区包含哪些?
- JVM垃圾回收机制,何时触发MinorGC等操作
- JVM的垃圾回收算法:
- JVM 调优的工具?
- 常用的JVM调优参数?
- 堆栈的区别?
- 详细介绍一下 CMS 垃圾回收器?
- 怎么判断对象是否可以被回收?
- 新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
- java类加载过程?
- 把你知道的中间件都说一下吧(瞬间懵了一下)
HR面:
- 为什么来阿里?
- 之前没考虑过阿里吗?
- 毕业这么久了,你觉得自己最大的改变是什么?
- 用一句话总结一下自己
腾讯面试经历:
腾讯一面 - 自我介绍
- TCP与UDP的区别
- TCP三次握手说一下(把流程说一遍,这里以为会继续问为什么不是两次或者四次,结果没有)
- 看你项目用到线程池,说一下线程池工作原理,任务拒接策略有哪几种
- 进程和线程的区别
- ArrayList与LinkedList的区别
- 线程安全与非线程安全集合说一下,底层怎么实现的(hashmap,concurrenthashmap)
- 数据库事务隔离级别说一下
- synchronized和lock区别,可重入锁与非可重入锁的区别
- 说说悲观锁和乐观锁的区别
- 手写进制转换算法,求出一个数的二进制数1的个数
- JAVA基础 equals和==
- 多线程方式、threadlocal,各种锁,synchronized和lock
- 设计模式、spring类加载方式、实例保存在哪、aop ioc、反射机制
- 类加载器,双亲委派模型,热部署
- jvm内存模型,内存结构、堆的分代算法、堆的分区、gc算法、gc过程。
- tcp ip 七层模型 rest接口规范 get和post区别,长度,安全。
- tcp ip的arp协议,两个同一网络的主机如何获得对方的mac地址。
- 负载均衡、高并发、高可用的架构
- mysql的引擎区别
- redis缓存,redis的集群部署,热备份,主从备份,主从数据库,hash映射找到知道指定节点。
- 了解云计算么,了解云容器docker么,容器和虚拟机的区别
腾讯二面 - 说一下你对哪个项目比较熟悉、为什么做这个项目
- 项目采用了什么架构,数据库如何设计的
- 数据库有哪些表,为什么有这些表
- 主要有哪些核心模块,模块之间如何通信的
- 如何保存会话状态,有哪些方式、区别如何
- 分布式session如何管理,你有哪些方案
- 学过数据结构和算法吗(当然),你说说二分搜索的过程
- 说一下快排的过程,写一下伪代码
- 了解哪设计模式,举例说说在jdk源码哪些用到了你说的设计模式
腾讯三面 - 说下你平时看的一些技术博客,书籍。
- linux 下的一些指令。
- 工作中你觉得最不爽的事情是什么。
- 说下你的优缺点。
- 有没有想过去创业公司。
- 写个 strcpy 函数。
- 说说你自己的性格。
- 给你一个系统,后台的逻辑已经实现了,但是前端加载很慢,怎么检测。
- 以后可能要学习很多新技术,你怎么看。
- 项目中遇到的困难(提前想好,并且把实现或者优化方法说清楚)。
- 系统的量级、pv、uv 等。
- 应对高并发的解决办法(分布式)。
- 在项目中主要负责了哪些工作。
- nginx 的负载均衡。
- 分布式缓存的一致性,服务器如何扩容(哈希环)。
HR面 - 平常怎么学习的
- 兴趣爱好
- 觉得自己前面几轮面试怎么样
- 除了Java还研究过其它什么技术(我说AI,区块链)
- 跟我介绍一下区块链~
- 怎么看待国内区块链的发展
- 跟我说一下你认为最具有挑战性的项目
面经如上,有一些问题确实想不起来了,请谅解。面试题答案整理:
总结:
很多学历不太好的人,可能对自己没有太大的信心,实际上任何事情都有“奇迹”发生,而这个“奇迹”关键还是要靠自己去创造。无论你是小白菜鸟,还是技术大牛,日常都不能够落下学习这件事情,一旦落后下来,就容易遭到淘汰。
以上我的经历希望能够给大家带来帮助,另外自己手头上的资料整理均可免费分享,需要这些资料的朋友可以关注+转发后扫描小编的即可获得免费领取。赶快抓紧学习的脚步学习起来吧!最后祝大家在接下来的金九银十当中都能大放光彩,拿到自己心仪的Offer。
除了文中所述资料外,小编还另外整理了一些Java岗常见常用经典题库,内容覆盖面广,包含了:数据结构与算法基础,Java基础,JVM,多线程/并发,Linux使用与问题分析排查,框架使用,数据库相关,网络协议和网络编程,Redis等缓存系统/中间件/NoSQL/一致性Hash,设计模式与微服务等,
截图展示部分:
篇幅受限,无法全部展示出来,只能截图展示部分,还是那句话行动起来,做个向上的爱学习的人,你学的早就比别人好。赶紧关注+转发后扫描小编的二维码把资料一并带走吧!