我当面试官了

289 阅读6分钟

曾经一直是被面试者,如今也体验了一把面试官的瘾,心情还是有一点小冲动的,有一种翻身农奴把歌唱的感觉。今天我分享一下第一次当面试官的经验。

面试前

由于是第一次当面试官,对于面试题准备的很用心,把之前被面试的题都拿出来,一道题一道题筛选,曾经不会的题,又翻资料把它解决,生怕被被人给问住了,那多丢人,弄得比自己面试还专心:

精心总结了面试题库:

  • java基础
  • java线程
  • JVM相关
  • spring相关
  • 中间件
  • mysql
  • 网络相关
  • 算法
java基础:
   hashmap1.71.8中的put过程可以讲述一下吗?为什么1.7先扩容后插入 1.8先插入后扩容
   hashmap的put以及扩容的时候老数据是怎样数据转移的?为什么是扩容两倍
   hashmap是线程安全的吗?有哪些是线程安全的?
   hashmap\currentHashmap两者有啥区别
   currentHashmap的size的实现
java线程:
   线程有几种状态?创建线程的方式
   怎么理解线程安全
   讲述一下synchronized和lock有何区别?
   synchronized锁升级的过程
   对JUC包下那些类比较熟悉 看过源码的?
   线程池的哪几种实现方式,原理
   线程使用start来启动,线程池中为什么使用线程的run方法
   cutdownlatch的实现原理 如果更深入可以讲述一下AQS原理
   AQS是怎么保证可见性和原子性的
   乐观锁和悲观锁的使用场景是什么
   如果竞争比较激烈的情况下,使用乐观锁会出现什么问题
   讲述一下cutdownlatch的原理?使用synchronized来实现闭锁的功能
   Semaphore和cutdownlatch区别
   volatile线程安全吗?在什么场景使用 
   runnable thread callable futrue futruetask threadpool completablefutrue forkjoinpool
   问题:
       两个线程交替打印奇偶数
       三个线程按顺序执行
       三组线程按顺序执行
JVM:
   JVM的内存结构?每种结构都有啥用?
   哪些内存结构是线程共享的
   1.8版本的内存结构有什么变化?消失的永久代去哪里了?
   永久代和方法区是什么关系
   哪些对象对被标记回收?哪些变量可以作为GCROOT
   垃圾回收算法有哪些?
   JVM有哪些垃圾回收器?
   可以讲述一下CMS的垃圾回收过程吗
   CMS有哪些优点和缺点?
   CMS可以导致Minor GCCMSG1有啥区别
   讲述一下安全点和安全区域
   记忆集
spring:
   springboot启动流程
   bean的生命周期?bean实例化过程中是什么设计模式?
   讲一下对自动装配的理解
   ApplicationContext和beanFactory区别
   beanFactory和FactoryBean区别
   spring怎么解决循环依赖的问题的
   spring的注入方式有几种?set和构造函数注入在循环依赖注入的时候可以注入成功吗
   为什么IDEA中不推荐属性上加@Autowire注解 resource和autowire注解有啥区别
   spring事务工作流程
   问题:一个方法中同时又新增和发送消息的流程,出现了发送消息查不到新增数据的情况 怎么解决?
   mybatis-spring整合流程
   在增删改查中对mybatis的缓存是怎么操作的
   mybatis的mapper的设计模式讲一下
   分布式事务的实现方案
中间件:
   rabbitmq 流程 死信队列
   kafka为什么这么快?
   什么是零拷贝
   kafka中的零拷贝底层使用了什么函数
   kafka怎么保证消息的可靠性的
   kafka消费的时候出现异常,会不会导致数据丢失?怎么处理
   kafka怎么保证消息的顺序,在多个分区的时候怎么能保证消息的有序性
   使用过哪些redis的数据结构
   sorted set 的数据结构是什么? 可以讲一下底层实现原理吗?
   redis为什么快
   zk遵循什么协议 什么是ZAB协议
   zk怎么选主的
   zk怎么保证数据一致性的
   zk的内容结构
   zk怎么保证顺序性的
   zk的使用场景
mysql:
   mysql有什么数据引擎
   innodb和myisam的区别是什么?
   可以讲述一下B+树和B数的区别吗
   mysql的事务隔离级别有哪些?
   可以讲述一下可重复读是怎么回事吗?
   mysql不可重复读是怎么解决幻读的
   mysql的锁都有哪些?
   间隙锁在哪些场景可以生效
网络:
   TCP的三次握手?三次握手的目的是啥
   TCP的四次挥手
   time_wait的报错是哪里发生的?为什么是2MSL
算法:
   实现链表反转的函数
   无序的海量数据中找出是个最大的数
   判断链表中是否存在环  

面试中

HR经过了大量的筛选,然后推到我这里(不得不吐槽一下HR筛选的能力),反正推到我这里的人都是参差不齐的,有上至四十岁的高龄程序员,有刚刚毕业的小白,我就是想问一下:难道你就不看岗位要求吗?

其中有几个值得分享一下,第一位是某里的P7,虽然不是核心部门的,但我还是怀着敬畏之心去面的,当时我就是从上面题库中随便选了几道,这位大哥硬是没有答上来,问过这的项目,拿来一个管理后台给我这说半天,最后我还是通过了,毕竟我是一面,但是最后是被二面刷下去的,听说要价比总监还高。还有一位是某奇异的小伙子,虽然工作经验才五年,但是跳了六次槽,问为什么跳槽,每次很傲娇,脸上写着我跳槽我骄傲的样子,不过技术还可以,看着这么一个有点实力的大哥,我就好奇的问了一下薪资,大哥开口45K,有股票,这下给我吓懵了,不过我还是通过了,然后就没有然后了,至于哪个环节被pass掉了,我就不清楚了。

其实我想说,我就是想找个能干活的,不求大厂,工作经验OK就行,当然薪资也OK,咋就这么难呢

面试后

这次面试的体验:面试者一定要明白岗位的需求,如果不明白,就要及时跟HR沟通,明白岗位标准,因为面试官也是按照这个标准去面的,高了低了都不行,面试官其实心里也特别想找一个合适的,可以速战速决的那种,毕竟面多了就没有那么的耐烦了