【面试相关】202006面试总结

一、写在前面

    Hello,你们好啊!没错时隔数月我又回来了!这次重新载着梦想再次起航,并且保证这次更新的时间久一些。虽然粉丝不多,但是感恩相遇,感谢支持。在过去的一段时间里,由于种种原因,停更了许久,虽然也有在学习,但是并没有输出什么。学习是一个持续输入与输出的过程,希望看到这篇文章的你们也可以一直坚持下去~

    来北京一年了,工作仍然不是我想要的。工作内容也好,薪水也好,都不是我想要的。我承认我似乎有些膨胀,但是不被嘲笑的梦想又何谈是梦想呢?于是时隔一年,这个月又重新开始刷新了简历寻找新的工作机会。虽然还没有拿到offer,但是坚信努力付出总会有回报的吧~节前大概面试了十天左右,因为疫情原因,部分公司都是电话远程面试,在这里凭着面试之后的复盘以及大概记忆做一个总结,希望对大家能有些许帮助。几乎所有问题都可以百度到。

二、面试

    度小满(百度金融):

    因为我是做金融行业出身,目前在一家互联网银行,所以首当其冲选择的就是同样的金融科技公司。度小满是我大学室友内推的,我也没做什么准备,关于这段面试经历,完全就是面一家准备一家,然后再面下一家再准备。所以第一家可想而知,死的很惨。

    度小满在中关村,说实话从来没去过大厂的我,第一次走进度小满大楼的时候真的是深深的鄙视了一下自己。也暗自下定决心一定要努力冲进大厂,不为别的,就为一个舒服的工作环境吧。废话有点多哦~

    首先就是常规操作自我介绍,我自我介绍从来没有认真准备什么套路,完全就是一个流程下来,我叫xx,xx年毕业于xx学校xx专业,第一家公司是xx,做xx,第二家公司是xx,做xx,我平时还会xx。接着就是你最近做的项目,因为我最近做的是分布式异地多活项目,所以面试官比较感兴趣,问了我整体的架构,如何保证数据一致性等等项目中的细节问题。虽然项目不是我设计的,并且我参与开发的工作并不多,但是我会看文档啊~所以项目经验这部分尚且OK。

    接下来是具体问题:

    1.kafka消费者能不能重复消费消息?不考虑生产者重复发送的问题。

    2.你们项目中用到的kafka版本?

    3.zookeeper在kafka中的作用?

    4.为什么官方取消了kafka对zookeeper的依赖?zookeeper适合什么场景?

    5.一个topic下有3个partion,一个消费者组有4个consumer,如何分配消费?如果只有两个consumer呢?如果是不同的消费者组又是怎么分配的?

    6.讲一下kafka的rebalance?

    7.数据库事务的四个特性?你认为哪个最重要?

    8.数据库事务的四个隔离级别?每个隔离级别会产生什么问题?

    9.Mysql RR隔离级别下会不会产生幻读?这里大多数资料给的都是会。我跟面试官争论了一会儿,面试官跟我说回去可以查一下快照读以及MVCC的概念。

    10.MySQL都有哪些锁?

    11.MySQL的索引类型?

    12.B-Tree索引的存储结构?

    整个面试持续了大概一个半小时,因为项目问的比较细致,所以占用了很长时间。其他问题基本如上,因为平时对数据库了解的不够深入,所以这一块简直天崩地裂。最后面试官也给出了建议,做金融行业的,对数据库一定要深刻掌握。So,Sorry咯。

通过这次面试之后,回来恶补了一下MySQL,总体来说目前除了索引还是不太能掌握,其它尚可。

    京东物流:

    猎头推荐的岗位,面试官对我的项目以及工作经历极其不满意,所以并没有问什么东西,电话面试大概十分钟草草结束。

    1.SpringMVC的工作流程?

    2.Dubbo是怎么注册Spring Bean的?

    3.Dubbo的服务注册与发现流程?主要使用了哪些方法?

    4.Spring Bean的生命周期?

    印象中基本就这四个问题,因为我面试准备很少会准备框架的内容,所以这一块也是吃了一亏,挂了电话之后立马恶补了一下。包括整个流程,以及Spring相关的比如事务传播、AOP什么的一系列内容都做了一下准备。

    滴滴中间件:

    视频面试,因为我第一次面试使用的是手机,然后家里的台式机没有摄像头,因此手写了代码。常规的自我介绍之后聊了一下项目,然后是手写代码。两道题,第一个是随机链表复制,就是一个常规的线性链表,每个节点都还有一个域随机的指向另外一个节点。如何复制这个链表?第二个题是找出数组中出现次数大于数组长度一半的元素,如果没有返回空。第一个题主要看思路,第二个题主要看是否规范。面试官说你连方法体都没有写,类名也没有写。我当时以为是写伪代码。。。。然后是一些常规问题:

    1.Java中给一个对象分配内存的过程?(会问到TLAB)

    2.Java类加载机制?静态变量实例化在哪个过程?

    3.常用的垃圾回收器以及对应的垃圾回收算法?

    4.如何确定内存是否可用?

    5.volatile关键字,是否线程安全?

    6.synchronized底层如何实现?

    7.Java中四种线程池,对应的场景?

    8.方法操作时,是如何找到堆中的对象的?

    基本问题就是这些,比较基础,一面也给顺利通过了。二面提前给说了让准备电脑,所以我借了个电脑准备二面。二面上来先撕扯了半天项目,然后就是一个算法题。很抱歉当时记录了题目,后来另一个考试把题目覆盖了。现在一点印象也没有了。而且这个算法题我也没有写出来,为了不耽误时间,我主动结束了面试。50k的工作还是需要磨练啊~

    小鸡叫叫:

    一家互联网公司,电话面试时间长达两个小时。打到我中午饭都没吃。面试官仿佛是拿着一本书按顺序在一个一个问我。个人感觉良好,不是很差,但是因为问的很多,所以我个人觉得应该有下一轮才对,很遗憾没有下一轮。题目比较多,我大概回忆一下。

    1.Dubbo是怎么注册接口的?(SPI)

    2.Dubbo服务注册与发现流程?

    3.HashMap与ConcurrentHashMap区别?1.8之后做了哪些优化?

    4.synchronized与Lock对比?

    5.ThreadLocal用过没?为什么会产生内存泄漏问题?

    6.redis有几种数据类型?redis的过期时间怎么设置?过期删除的方式有哪些?

    7.redis编码?(这个我真第一次听说这个问题)

    8.AQS原理?

    9.CAS原理?Unsafe是什么?

    10.Oracle默认的事务隔离级别是什么?

    11.MySQL的索引类型有哪些?

    12.MySQL中的锁有哪些?

    13.CountDowLatch的使用场景?和CycleBarrier有什么区别?

    14.AQS中是如何唤醒等待队列中的线程的?

    15.线程池的几种类型?参数的含义?

    16.zookeeper选举策略?

    17.线程中断的方式?

    18.OSGI七层协议?TCP/IP四层协议?TCP在哪一层?Dubbo在哪一层?Http在哪一层?

    19.Https是如何加密的?加密算法有哪些?

    20.TCP三次握手?

    21.TCP如何保证可靠性?

    21.分布式事务?

    巴拉巴拉一堆一堆的问题,基本把常见的面试题都问了一遍,大概回忆了一下~其实但凡不是场景题,所有其他的面试题都是靠记忆力的。所以认真看书多刷刷多背背我觉得还是可以的吧~

    多点:

    两个面试官同时给我打电话,另一个电话我一直以为是另一家公司,挂了电话才知道是同一个公司。我还编了一个刚在忙工作的事儿的理由~~~~

    1.hashMap与ConcurrentHashMap的区别?

    2.zookeeper的使用场景?

    3.redis持久化策略?有什么区别?

    4.synchronized关键字语义?volatile语义?

    5.线程池的种类?参数?

    6.对象分配内存时,如果超过新生代大小,怎么办?

    多点当时在下班回家的路上,并没有问很多问题,而且好多问题也都重复了,最后问了一下入职时间,然后说节后给回复~目前还没有通知。

    企鹅杏仁:

    腾讯旗下的医疗公司,面试过程比较融洽,面试官表示对我也比较认可,但是不知道什么原因~目前还没有给到反馈。好多问题基本都重复了。这里回忆几个不重复的问题吧~

    1.zookeeper zxid高32位与低32位的作用?

    2.zookeeper的选举策略?

    3.SpringCloud和Dubbo的区别?

    4.Http1.0/1.1/2.0的区别?

    5.Dubbo的泛化调用?

    其他问题基本上边都说过~JUC啊、锁啊、多线程啊啥的巴拉巴拉的~~~

    极米:

    一家硬件公司,因为对我的项目不是很感兴趣,所以问了一下有没有看过什么源码,SpringCloud和Dubbo的区别,Dubbo的序列化基本就结束了。

    华为OD:

    华为目前全面取消社招,甚至内部在裁员,通过OD(高级外包)的形式招聘员工。我是出于工资高且混经验的目的参与了一下~先是笔试,时间两个半小时。牛客网上的三道编程题~听说好像AC100分就能拿到面试机会。我应该是AC了350分,前两个全部通过,最后一个因为时间太紧迫了想偏了,AC了一半。华为的面试以前参加过一次,一直以来都是以《编程思想》这本书为考察的主要点:

    1.JDK\JRE区别?

    2.接口抽象类的区别?

    3.static关键字作用?

    4.线程的实现方式?

    5.泛型?

    基本就是《编程思想》这本书从前到后过一遍吧~~~~上次面试刚好看完了这本书,这次没有看,有些内容记得不是很清楚了。不过问题不是很大,目前在等二面安排时间。

    腾讯云:

    大学室友内推的他原来的小组,因为我是写Java的,而这个组是写php的,所以实际上我还是比较慌的。然后他给我说不会问语言相关的问题,看看基础。

    1.项目介绍,恰好面试官参加过微众银行的异地多活项目,因此多聊了一会儿,他认为我还是没有深刻的理解我们的项目。至少架构没有给他讲清楚。所以今天复工又重新找出来文档看了一遍~

    2.TCP断开连接的过程?(四次握手)Server端产生大量Close Wait状态如何定位与解决?

    3.Hash冲突解决的几种方式?

    4.Java中垃圾是怎么回收的?不像C++一样自动回收。

    5.redis使用场景,使用过哪些数据结构,使用过哪些命令?

    因为与语言无关,所以都是一些中间件、网络等常规问题。因为知道鹅厂做IM起家,对网络通信一直比较看重,所以提前恶补了一下TCP/IP,这里推荐《TCP/IP协议-卷1》,大学的时候看过一遍,后来工作时偶尔也会翻出来看看~如果觉得看书太麻烦,可以找一下网上的专栏讲解,速成比较快。目前在等二面安排时间~~~~

    平安医保:

    比较遗憾,测评没有通过。18年参加过一次,那时候测评过了,但是面试的是资深,面试官认为我刚毕业两年,基础还可以但是资深达不到。这次索性连面试机会都没有,我甚至一度怀疑自己有性格缺陷了。当然,也是自己没有认真对待。最近一直没有在状态,所以第一部分的IQ测试题,基本没有认真做,计算题也没有计算,看图题也没有认真分析,想当然的选了一个~后边两部分就是那种性格测试,你是一个什么样的人,以下哪个描述更适合你之类的话。猎头说因为去年测评改版了,所以好多候选人都挂掉了~~~~

    还有一部分公司,简历通过筛选,但是前期沟通的时候因为我比较实在,直说了我这边离职需要三个月时间,所以有一些公司直接选择放弃我~~~~后来我就比较谨慎了。先面试再说~~~~

三、总结

    这次找工作,也算是试试水,一方面想看一下帝都的现状,另一方面也想看一下过去一年自己是否有成长有收获。总的来看,面试的整体方向依旧是那些,JUC、锁、JVM、多线程、分布式、框架、redis、MQ以及场景或算法问题。这里个人建议如果不考虑头条的话,算法可以适当收敛一些,前边该背的内容背一背~~~当然我也没有拿到offer,所以我也不说什么指导性的建议了。祝大家成功,早日顺利找到心仪的工作~

    最后,疫情仍处于关键时期,希望大家注意安全防护~外出戴好口罩,做一个健康的Coder~~~~

你可能感兴趣的:(面试相关)