乐趣区

关于面试:上干货大厂面试走心经验分享

先说下楼主经验:

其实我之前曾经写过一篇对于本人 秋招 经验的文章了,外面有很多面试题,能够作为参考:

往年行情这么差,到底如何进大厂?

上面从新介绍一下本人:

我集体是双非本,去年五月份至今始终在 JD 实习,拿到了 JD 的 offer 后,偶尔的机会(boss 上)就开始面试

部门是百度云 cdn 具体如同是做音视频相干的,次要语言是 Java 和我自己相符

一、二、三面两天面完,具体的问题记不清楚了,以下内容仅凭回顾(下班摸鱼写的):

注释

一面面经:2021/1/21 下午五点

是个小姐姐,然而很庄重

  1. 自我介绍
  2. 介绍实习我的项目、难点、参加的工作
  3. 我的项目用到的设计模式以及其余设计模式
  4. syn 锁(降级过程、降级?(读写锁)一些底层原理)
  5. 操作系统线程间同步机制
  6. syn 和 lock 区别
  7. 线程池、参数详解?你怎么设置参数(I/O 密集型、计算密集型)
  8. JVM 内存区域
  9. 如何排查一下线上 OOM 问题?
  10. 类加载机制?
  11. 双亲委派?tomcat 如何突破的?
  12. 写代码 1 翻转链表(秒)2 手写快排序 介绍各个排序算法工夫复杂度
  13. 在看的书籍?常识?《深刻了解 Java 虚拟机》说下最粗浅的局部?我说了个 R 大写的 JVM 是如何辨别出是援用类型还是根本类型
  14. 反诘 大概 47 min

二面:2020/1/22 上午十一点

HR 说的是一个高 T 二面面试我,果不其然,一个秃头大叔。

  1. 自我介绍
  2. 介绍京东实习我的项目
  3. 我的项目分布式锁怎么用的?主从的缓存 master 节点 down 了怎么办?(Redlock)
  4. 脑裂问题(配置文件)、数据歪斜(一致性哈希,虚构节点)、数据分片
  5. 缓存穿透、击穿、雪崩
  6. Redis 哨兵?cluster?
  7. zset 底层,为什么用压缩列表(防止内存碎片),跳表查问复杂度?log(n)(逮住 Redis 真就往死里问啊)
  8. 看你博客里有微服务,讲讲微服务、分布式?
  9. 我的项目中各个服务之间怎么调用的?我说用 JSF(JSF 是京东外部的 RPC 通信工具,相似于 dubbo)
  10. 分布式 CAP 定理
  11. 讲讲分布式事务解决方案,各自优缺点(心田。。。还好前几天看过)
  12. 写题 遗记具体是啥了 反正都是属于 easy 的题目,大概 50+min

还有一些回顾不起来了,如同是 Spring 源码的货色,电脑面试没有录音,总之抠得很细,面试官果然是个大佬。。。

三面 2020/1/22 早晨八点半

  1. 介绍本人
  2. 两个栈实现一个队列
  3. 基本上就是一些非技术问题,唠家常、谈现实、问 offer
  4. 可能是我比拟能 bb 三面约 1 h 15min

十分钟 HR 分割微信分割说过了,让我等接下来的补口试、测评邮件

1/26 下午收到邮件做完后 HR 叫我安心期待,最迟周五给发 offer。

lz 从去年二月份开始春招找实习,(双非本科学历)到当初差不多过来了一年。大大小小的面试也经验过了不少,也相应的拿了一些公司的 offer,上面是我的一些个人见解加上别的大佬的一些参考,心愿能抛砖引玉,如有瑕疵,还请多多指教!

我认为的面试 = 根底 + 能力 + 布局以及一些面试技巧

其实也就是对应着一个人的:过来(学过的常识)、当初(领有的能力)、将来(布局)

根底

这个就很简略了比方

  1. 最根本的数据结构、算法;
  2. 以 Java 为例的一些基础知识:JVM、汇合、框架;
  3. 计算机操作系统、计算机网络;
  4. 通用的一些中间件:netty、nginx、redis、MySQL 等。

这些是基本上都要晓得的,尤其是一些面试常问的必须要数量把握,只管有人认为这是背书,然而连背书都不背的阐明态度有问题,必定是不是被公司承受的。

当然以上说的太抽象了,具体的温习路线能够参考其余大佬的作品,如不厌弃能够看一下我写过的一些博客 https://blog.csdn.net/weixin_44104367 本文只做一些面试教训相干的总结、概述。

能力

这方面次要是围绕实习、我的项目来开展的基本上 = 技术硬实力 + 能力软实力。

比方:有实习的

  1. 在实习期间做了哪些事可能证实本人的能力
  2. 如何在开发过程中优雅的书写代码?(其实一些常识譬如设计模式大家都会背,然而可能真正将这个常识落到实地的又有几个呢?
  3. 我的项目开发过程中如何一步步晋升本人的技术能力、业务水平?
  4. 如何疾速的了解业务?适应环境?
  5. 对于实习 OR 我的项目的思考总结?

要明确一点:工作了的人很喜爱问一些 case,尤其是一些领导特地喜爱问,哪怕这个我的项目技术再牛,那么它是如何落地的呢?他的场景是什么?为了解决什么问题?应用了什么办法 OR 工具?达到的成果如何?最终能满足预期吗

比方大家都会背一些 Spring 源码,设计模式,然而能本人将这二者联合起来吗?比方联合 Spring 源码 + 设计模式开发?(这篇文章就是个例子 淘系技术部的 https://mp.weixin.qq.com/s/94oe5c_7ouE1GbyiPfNg5g)

对面试官而言,他们曾经听吐了这些背的货色,如果本人能讲的让面试官眼前一亮,那么即时面试问题答复的不太好 最起码也能证实本人 对于技术是有谋求、有思考的,而不是一个背题机器

对于一个技术而言,它在这个公司存在的意义就是为了一些变现业务服务 技术服务于业务,用业务发明价值

集体认为学生状态过渡到工作状态就是实践转化为实际能源的过程 有些人总感觉校招生身上有一股 书生气 大略就是:实践的货色多而童稚,有些不切实际的想法,能不能落地呢?

布局

这点其实发现面试总结外面很少有人去谈,然而看到脉脉上,十个 HR,九个都会喜爱听到候选人这方面的一些思考、总结。

路线布局

举个例子比方:会不会提前去布局本人的人生路线?

这是从网上找的一张图,能够看到有很多路线,到底哪一条适宜本人?可能很多人压根没思考过这个问题?另外本人适宜哪一行呢?教育?广告?地图?还是纯技术?

隔行如隔山,因为我从去年五月份就来实习,也换过俩部门,所以对于这些事件比其他人要粗浅一些。

只有分明晓得本人喜爱的才有能源去做好他 不喜爱的只是为了生存被动的产出。

不是所有人都适宜做纯技术、也有的人压根就不适宜搞业务,到底那条大路通向本人心中的罗马,只有本人分明

而这些事很多人都这么回复的:先有了工作再说

看过很多人 尤其是 90 后工作半年跳槽、一年的也有。反正给我的感觉就是:不虚浮。对于公司而言就是不虔诚:谁能保障你从上一家公司跳又无能多长时间又跳走了呢?公司造就一个人的代价又有谁去承当呢?

在一个公司呆够超过五年 最起码能够阐明这个人在这个行业、公司站住脚了。

有的人入职当前才发现自己不太适宜这个行业、这个方向,于是就跳槽,简历就花了。

简历一花,找工作就更不好找。别的公司不晓得,JD 这边有的部门五二准则卡的很严格(五年内只在两家公司工作过,也就是说均匀一家公司至多工作两年工夫 https://www.jianshu.com/p/ac8f28f58e11)

这还是主要,更重要的是本人能确保这个新的方向就本人适宜或者喜爱吗?于是又开始跳、跳、跳。

人生往往是一步错、步步错。

他人曾经在本人适合的方向上工作很久了 而你还在思考本人要做什么。

男怕入错行,女怕嫁错郎,说的大略就是这个意思。

工夫布局

大家都晓得程序猿 35 是一道坎,到时候要么转治理,要么成为 CTO,本人对于本人的成长路线是一个什么布局呢?

治理路线:三年可能解决日常开发当中的任何问题;五年可能在技术上达到本人一个比拟现实的状态;七年可能成为小组 leader;十年可能成为部门 leader

技术路线:三年够在技术上可能有较大晋升;五年成为架构师;七年成为资深架构;十年成为总监等。

可能表白出这些,最起码可能阐明本人 比拟虚浮,是一个有布局、有思维的人

面试教训

对于面试教训这块真的就只能实战找感觉了,每个人都有本人的一个表达方式,不过套路都是差不太多:

取长补短

像楼主自己学校不好然而始终在 JD 实习,那么自我介绍的时候能够说本人实习工夫比拟长等。

学校比拟好然而导师不放实习的能够着重说下本人的学校经验,paper、比赛状况,都没有的能够说可能凸显本人能力的中央

适当的往本人会的方向疏导面试官

有的面试官会本人电脑前放一个题库,然而大部分不会,会依据简历上,本人脑海中搜寻问题。

比方问你 MySQL 调优,本人晓得那些就说哪些,比方你晓得索引这块哪些本人晓得原理就说那些:(is null 判断可能会导致放弃索引、尽量避免应用判断等)再往下往往会问原理,因为你晓得最左前缀准则、MySQL 优化器的索引代价剖析、抉择过程,你就能够轻松答复上来。

然而你不太懂索引相干的原理就不要胡说八道,瞎往本人不善于的畛域疏导面试官,能够从设计规范方面谈起(应用 varchar 而不是 char 等等)因为面试官个别会问:为什么?本人在学习常识的过程中也要常常问本人一句:为什么?比方都晓得函数表达式操作会导致索引生效,那么原理呢?

面试充斥了不确定性

你又不是 RMB 不会所有人都喜爱你

这个恐怕很多人是深有体会:我面试面的挺好的啊,问题都答复上来了,怎么还是挂了?放宽心态,该佛系的时候佛系一点啦。

面试充斥了不确定性,能和面试官聊得来,即使问题答复的不怎么样,面试官也会放你一马。

有的人跟面试官聊不来,甚至面试过程中产生了争执,那必定就是不给过了呗。

面试是一个双向选择的过程

你被面试官面试的时候其实你也在考量这个部门、这个面试官技术水平、人品以及是否违心疏导新人等。

个别面试本人的都会和本人入职后的工作关系是在一起的,个别是本人的共事、直属领导。

如果面试官为人和善、违心疏导你解答出问题来,那么入职之后你的成长速度也会更快的。

如果面试官技术问题问的很含糊其辞,不够业余,那么面试多了你也会感触进去。

你不是非我不要,我也不是非你们部门、公司不选,面试就是一个双向选择的过程

烂大巷的我的项目尽量不要写

秒杀零碎、商城零碎。

起因本人领会 懂得都懂

学历差的自信一点

牛客上意识了很多盆友,大家的学历大多数都比我这个双非渣本菜鸡学历高得多,这也不是意味着学历差就肯定不行,我这不是也上岸了百度、京东了么。

衷心告诫 22 届及当前毕业学历较差的盆友,学历差不代表所有。

但正是因为学历的问题,就须要咱们比他人付出更多,他人不会的能够通过学校、paper 补过去,然而咱们赤贫如洗只能冲。

的确像 bat 这大厂对于学历的要求不是特地高(某东除外,很多部门明确要求学历 211 及以上)

PS

都在问啥我的项目比拟好,我从集体角度谈一下:有实习的话必定是公司的我的项目比拟好 无论是体量还是业余水平

没实习的话能够做个:仿造 dubbo、netty、tomcat、简略的 ioc 容器啦 或者一些实实在在能落地的我的项目,因为一个我的项目落没落地面试官一问就晓得。

前者会更好的走完一个底层的流程,从原理搞懂这些中间件,会比间接背书强。

真正走完一个流程的我的项目远远优于那些网上的我的项目 没有理论的背景 那些开发中的状况面试官一问就破(以上为个人观点)

以上内容纯手打,囿于楼主自己的认知阶层,目前临时总结了这么些,算是回馈一下牛客吧 心愿 22 届及当前的同学们看到这篇帖子可能有所启发,写的不好多多包涵!

另外,增加我的微信 becomecxuan,退出每日一题群,每天一道面试题分享,更多内容请参见我的 Github,成为最好的 bestJavaer,曾经收录此篇文章,详情见原文链接

我本人肝了六本 PDF,微信搜寻「程序员 cxuan」关注公众号后,在后盾回复 cxuan,支付全副 PDF,这些 PDF 如下

六本 PDF 链接

退出移动版