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~~~~