敖丙朋友离职了,一周面了 20 多场,新鲜面经奉上
共 2968字,需浏览 6分钟
·
2022-01-16 16:50
大家看到这篇文章的时候,应该是我在新公司的第一天,很不幸,周六去打羽毛球的时候脚崴了,得瘸着腿去公司了,周末在家给大家码码面经吧
先给大家看下我的面试记录吧
我的面试感受
先说一个字 是真的「累」。。。。。安排的太满的后果可能就是经常一天只吃一顿饭,一直奔波在路上
不扯这个了,给大家说说面试吧,Moon 工作大概两年多的时间,大家可以参考下
在整个面试过程中,问的最多的几个问题
1.Java 本地锁到分布式锁,各种锁的场景,为什么要用,以及不同锁实现方式的底层,优缺点,还有 volitale 2.hashmap ,这个就不用多说了,put 过程啊,为什么线程不安全,1.7 和 1.8 的区别,为什么要用红黑树等等,可问的很多 3.多线程实现方式,线程池核心参数,运行过程,有什么问题需要注意的 4.jvm 方面,cms 问的比较多,和 g1 的区别,还有 rootsearching,类加载过程,jvm 内存模型以及各个模块运用 5.redis 哨兵同步,投票选举,集群模式,持久化方式,zset 实现方式 6.dubbo 调用链路, 其 spi 和 java 的有什么区别 7.mysql 索引优化思路,事务 mvcc,日志系统,主从同步, buffer pool ,分库分表等 8.zookeeper 脑裂问题,leader 选举过程 9.spring bean 生命周期,循环依赖,ioc 和 aop ,事务实现方式等 10.kafka 高吞吐原因,丢失消息的场景,副本维护,leader 选举,消息幂等性保证等
其实对于我这个简历和工作经验来讲,在整个面试中问的很多的还是对于「基础还有各个框架的理解」,这也是最基础的内容,还会有一些「设计选型」,因为 moon 在后面项目经历中都是以项目负责人去写的,你需要知道为何要选某个框架,还有一些兜底,都是需要自己去做的
简历怎么写
给大家看下专业技能栏,我在这里写的基本都是我记得很熟的,不熟悉的框架我一般不会写上去,比如 rabbitmq 虽然自己有看过,但是不是很熟,对于不熟的我是写在后面项目架构中,当然这里就可能会设计到架构选型的问题大家会发现,其实面试官「基本都是按照你写的技能」去问的,基本要求就是你简历上写的东西,你都需要熟悉,基本技能栏一定要「体现某些技术的深度」,能让面试官看出来你平常会有自己去深度学习
在给大家看下项目栏
这里我就挑了两个项目去给大家看下
我要告诉大家的是,「一个好的简历模板绝对能让你简历通过的几率大很多」
在项目经历这块儿一定要详细的去写
「技术框架」:展现项目所用技术框架,后面面试官可能会根据项目内容结合技术框架去提问 「工作职责」:体现了你在整个项目中的角色定位 「方案设计」:可以展现出你的设计能力,为何要这么设计? 「痛点」:为什么要做这个项目?是有什么解决不了的问题吗? 「主要功能」:介绍你这个项目的内容,让面试官能够一眼了解你这个项目大致内容 「解决了什么问题」:体现业绩的时候到了
面试过程需要注意什么
1.跟着面试官的节奏回答问题
在 Moon 面了这么多场后发现,语速很重要,由于 Moon 平常说话都是很快的,所以在面试过程中一般「语速」都比较快,但是有些面试官会比较喜欢稳扎稳打的,语言这种东西在字里行间中也会体现出一个人的性格,当一场面试进行了 10 多分钟左右,你就可以「根据面试官的反馈来调整」自己的语速,能力固然重要,但是面试结果还是掌握在面试官手里的,对不?即使通过了后面的面试到了谈 offer 的时候,之前面试官对你的评价也是很重要的
2.让面试官跟着自己的节奏来问
这点也是非常重要的一点,尽管你面试可能会有 4~5 轮,但是还是没有办法完全的挖透你,在面试官问到某个问题时,如果你对某个问题了解的比较深入,那么你就「可以抛出更多的知识点让面试官去追问」
比如你在回答锁升级的时候可以自己扩展到锁标志位,通过锁标志位还可以扩展的对象的内存布局,通过内存布局还可以扩展到不同操作系统对于内存布局的存储大小
通过一个个深入知识点的抛出以及面试官的追问,既可以让面试官发现你是一个平常都会去深入学习的人(每天一个小心机)
3.避重就轻,快速逃离
这点也很重要,如果遇到某个不会的问题时,立马过,不要犹豫,因为整个面试时间是固定的,在某个你不会的问题上停留太久可不是一个明智的选择,一定要放大自己的优点,让面试官的问题能够尽量精准命中你的知识体系内
4.学会猜
学会猜,这个要怎么理解,我给大家再举个例子
比如面试官问到你 zookeeper 的选举机制是怎么做的,如果你不会,该怎么办
这个时候就要学会猜了,你「可以给面试官说下其他的选举机制」,以及有哪些问题,然后根据 zookeeper 的特性,去猜下它是大概怎么去选举的,这个地方「即使答错了也没关」系,因为「面试从来不是要考倒你,而是要看看你会什么,你自身的特性是否满足这个岗位」
5.别紧张,放轻松
虽然是技术岗位,但是沟通能力也是非常非常非常重要的一点,如果是一些深层的研究岗位,这点可能要求不是很高,如果是业务开发,那么沟通也是会占有一定的比重的,毕竟你需要经常和其他业务方沟通
怎么才能不紧张?「多练,多说」,没有捷径
6.先面小公司
把自己喜欢的公司放到后面,「先面小公司扫扫盲」,找下手感,「或者让周围技术比较好的朋友多帮自己模拟面试一下」,尽量扩宽或者加深一下自己的知识体系,好久没面试也要锻炼下自己的沟通,好在后续面试能够正常或者超常发挥~
一些读者的小问题
学历重要吗?
重要,说不重要的都是骗人的,之前我一个朋友专科学历,技术很硬,但是连面试机会都很少,这个东西就相当于敲门砖,「本科和专科是一道分水岭」,「重点本科和普通本科又是一道分水岭」,对于校招的同学来说一个重点本科的学历文凭很重要,如果是社招的同学要求会放松很多,毕竟 Moon 就是一个普普通通的二本
算法重要吗?
刷就完事了,想进大厂的同学,算法必刷的,但是现在很多中厂也开始卷算法了,每天一道刷刷,也不会消耗太长时间,虽然工作中很少用到,但是这个东西关键在于可以「锻炼并扩展自己的思路」
谈薪不敢要怎么办?
薪资有很多考量因,比如「面试水平、上份工作薪资、你所面的这家公司的薪资范围」等等等等,谈薪可以多看看周围人的薪资水平,可以做一个参考,如果你觉得你面试整个流程都很好或者手里也「有比较不错的offer」,那你就可以超出预期的去要下,当然不要太离谱,Moon 面的某厂在最后谈薪的时候 hr 就很明确的说要的很高,给不了,对于喜欢的公司一定要去软件上查查薪资水平
说下结果吧
最终大概有一半以上的面试都到了 hr 面,后面由于太多,我很多面试都推掉了,实在没有精力了,大厂的 offer 也有几家,但是最终还是选择去阿里了,希望大家都能进入自己心仪的公司~
最后面经奉上
记录的可能不是很全,有些比较简单的也没有往上写,大家参考下吧,有问题可以关注我的公众号:moon聊技术,私聊我~
最后祝大家面试顺利!