欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

记一次面试总结

程序员文章站 2022-07-05 12:02:10
疫情在家有些闲,发现自己的简历有1年半没更新过了,上一次面试还是1年半以前。想看看外面的行情也顺便摸一下自己的底,把自己的方向理清晰一些,就更新了自己的简历,公开出去了。公开的第二天收到了一些面试推荐。虽然在家,但是白天还是在远程办公,所以也没有面试很多,选了其中两家。一个是阿里CBU技术部-C2M ......

  疫情在家有些闲,发现自己的简历有1年半没更新过了,上一次面试还是1年半以前。想看看外面的行情也顺便摸一下自己的底,把自己的方向理清晰一些,就更新了自己的简历,公开出去了。公开的第二天收到了一些面试推荐。虽然在家,但是白天还是在远程办公,所以也没有面试很多,选了其中两家。一个是阿里cbu技术部-c2m-java方向岗位(终止第三轮技术面),还有一个是斗鱼java后台(拿到offer,考虑到时外包直接否掉了)。总结一下这次面试过程,以及自己的不足与后期的方向。

  面试感受的话,阿里给我的面试总体感觉是非常舒服,专业,都是中午打电话预约下一轮面试时间,每一轮面试在1个小时到2个半小时之间。每一轮面试官问了什么问题,面试者回答结果都有记录。所以后面的面试官都会看到前面面试官问了哪些内容,面试者回答的情况,多轮面试技术都不会重叠,技术广度覆盖比较全.记录一下面试内容:

  一面主要聊了2个半小时吧,聊了快两个小时,做题做了半个多小时

  1.项目中对quartz的使用以及分布式调度任务的实现过程/方式。

  2.redis相关。作为分布式锁实现原理,调用的哪个命令,以及项目中使用的业务场景。作为缓存使用场景,cluster模式是如何实现的;主从数据同步过程,持久化方式,数据过期处理方式,cluster模式下某实例节点挂了,客户端是否感知,是否有数据问题;一致性hash原理,一致性hash解决了具体什么样的问题。hashmap中扩容时rehash的过程。

  3.mq相关。项目中rabbitmq使用场景,交换机的几种类型。

  4.dubbo相关。dubbo的组件有哪些,有没有用到限流以及如何使用,dubbo协议特点,nio实现原理,dubbo协议与http协议(设置keepalive时)的区别,网络模型聊一下

  5.加解密相关。我用过哪些加密,签名算法,对称与非对称常用加密算法有哪些,rsa如何保证安全性。

  聊完之后给我发了一个写算法题目的链接。1个小时内,3个题目选2个做。

  1.jdk1.8)线程a打印a,线程b打印l,线程c打印i,三个线程交替打印,各打印102次,alialiali

  2.小b有一个计数器,其计数规则如下:计数从1开始,每过1秒数字+1,第一次计数周期上限值为5,下一次计数周期上限值为上一次计数周期的两倍,每次计数到上限值,触发计数重置,即下一个计数重新从1开始,以下是前20秒计数器上显示的数字举例:,1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5,请实现一个方法,输入第n秒,返回计数器上这个时刻的数字

  3.手写lru,实行put(),get()方法,不能使用linkedhashmap

 

  二面是技术主管面试的,差不多聊了2个小时。主要内容:

  1.redis相关:  缓存穿透如何处理,缓存雪崩如何处理,缓存击穿如何处理。

  2.mq相关:发生消息堆积如何处理。有没有使用过除了rabbitmq其他的mq产品,他们各有哪些特点

  3.java基础相关:内加载机制,双亲委派,内存模型,内存引用机制

  4.虚拟机相关:是否用过虚拟机调优经验,虚拟机启动参数有哪些,如何打印线程堆栈信息,内存溢出,cpu过高问题一般查找问题过程

  5.rpc相关:dubbo协议的序列化,我知道有哪些序列化,hession序列化与json序列化区别。

  6.分布式事务:项目中有没有用过分布式事务,分布式事务目前主流几种解决方案

  7.数据库:数据库分库分表的横向和纵向一般区别使用在哪些业务上。

  8.项目相关:项目团队大小,担任的角色,成就,工作遇到的问题。

 

  三面是该部门最大的boss面的,听二面面试官讲是最后一轮技术面了,1个多小时,主要内容:

  1.虚拟机相关:垃圾回收机制,cms垃圾回收过程,打印出java程序线程对账信息命令。

  2.java线程基础相关:线程有哪几种状态,synchronized底层原理,与reentrantlock区别,concurrenthashmap实现原理

  3.mysql相关:innodb有哪些特点,脏读,幻读是什么,写个分页查询sql,事务隔离级别,事务实现原理

  4.rpc相关:有用到哪些rpc框架,.net里面wcf与dubbo区别

  5.项目相关:个人项目经历,职业规划等

 

  面试总结:这次面试没过,还是个人技术问题。前1年半都是搞得.net framework,后来搞了几个月的.net core。转java这边只有1年多一点的时间。虽然思想,语法上差不多,但是java语言的功能的底层实现,以及相关框架实现源码都没有弄得很好,导致在三面时很多底层细节都回答不出来最后挂掉了。暂时先放一放对docker,k8s,elk相关学习,先投入到java基础,spring,dubbo,netty基础源码上来。今年暂时就不继续面试了(公司裁掉我了除外。。。),不足的地方还是挺多的,先努力工作提升下自己,,等今年年底再去各大厂摸摸底。

  

  个人总结:工作三年了,搞了2年多的.net,1年多的java,总感觉基础深度沉淀不够。2年前就注册了博客账号,一直都是逛园子,没有亲手写过博客。以后在学习过程中需要及时的总结,养成总结技术点的习惯,不然好多东西过了一段时间就忘了。今年开始也希望能着手深入研究某一个优秀的开源框架,提升自己之余看看能不能为开源社区开始做点贡献了。