如何吊打面试者-面试官初体验

开场白

作为久经沙场的我(也就3年工作经验),也是经历了几十场的面试,可以作为面试官,我还是头一次,接下来分享一下这场面试的经历。

背景

由于业务需求量大增,开发人手不足,招聘任务也就落到我们几个高级开发身上。
接到HR发给我的简历,一看六年工作经验,作为三年开发经验的我,当时心里还是蛮紧张的,心想别被吊打了(敖丙的吊打面试官系列看多了),
仔细看了一下简历,简历技能内容如下:

  1. 熟悉java,设计模式,有良好的编程习惯。
  2. 熟悉jvm内存管理机制,熟悉并发编程。
  3. 熟悉tomcat,redis,RabbitMQ,MySQL,Oracle等中间件及数据库。
  4. 熟悉基于SpringBoot,SpringCloud的应用开发,熟悉docker容器的应用。
  5. 熟悉数据结构,有算法基础。
  6. 熟悉微服务体系的服务注册发现,负载均衡,网关,熔断,限流等模块的应用实践。
  7. 有需求分析,架构设计能力。
    稍微准备了一下,接下来看我如何吊打面试者的。

正文

由于疫情期间,公司面试都是电话面试,电话拨通后,先做了简单介绍,接着我就开始提出问题了。

  我:请简单做一下自我介绍
  面试者:巴拉巴拉说了一堆。
  我:那你在项目中主要承担哪些角色,开发项目的哪些功能,采用了哪些技术栈?
  面试者: 说了作为团队的高级开发,说了一下做了哪些内容,使用了哪些技术栈。(未能清楚说出自己做的功能是如何实现的)

作为面试官的我认为自我介绍很重要,一定要好好准备,条理清晰,重点突出,能够清晰的表达出自己的技能优势。
这是给面试官的第一印象,有亮点更好,没有的话也能接受,但是不要留下不好印象,例如表达不清,项目介绍不清,自己职责不清,开发的功能如何实现的不清楚等等。
自我介绍一定不能给自己减分。
接下来根据简历提出下面一些问题:

  1. 设计模式
我:目中使用的设计模式,简单介绍一下
面试者:策略模式,说了项目中的使用场景,不同会员的计算策略。
我:那策略模式的优缺点可以介绍一下吗?使用策略模式应该注意哪些事项呢?
面试者:巴拉巴拉说的不清不楚的。
我:知道策略模式在常用的框架中的使用吗?例如,spring、jdk等
面试者:...半天没有说出来。
我:jdk中的集合排序使用到了什么设计模式?spring中的资源访问使用什么设计模式?
面试者:...

小结:简历中写的东西是高频问题,一定要深入了解,例如设计模式,一定要清楚使用场景,优缺点,为什么要使用,深入一点可以介绍一下常见框架中的使用案例。
可以加分。建议深入了解几个常见的设计模式。
2. jvm内存管理机制

我:简单介绍一下jvm的内存模型
面试者:说了方法区,堆,程序计数器等等。
我:(感觉回答的还可以)那说一下对象在内存中的分配策略吧
面试者:直接说对象在年轻代,进入老年代,GC等
我:无语中,垃圾回收器如何配置的
面试者:jdk默认的
  1. 并发编程
我: 简单介绍一下并发编程使用的工具类?
面试者:synchronized、volatile等
我:介绍一下volatile、synchronized
面试者:说到了volatile的用户台和内核态,synchronized说到了monitor。
我:(感觉不错)synchronized的锁升级过程能介绍一下吗?
面试者:这个只是知道,具体不是太了解。
我:下一个问题,简单介绍一下AQS?
面试者:这个不是太了解?
我:countDownLatch、CyclicBarrier等
面试者:简单说了一下countDownLatch、CyclicBarrier的使用场景。
我:能简单介绍一下线程池的工作原理吗?
面试者:说了一下几个参数,基本流程,拒绝策略回答错误。
  1. redis
我:简单介绍一下redis的使用场景?
面试者: 使用的缓存、分布式锁。
我:简单说一下缓存穿透、缓存击穿、缓存雪崩以及缓存一致性?
面试者:支支吾吾。。。
我: 那你介绍一下分布式锁?
面试者:简单介绍一下分布式锁使用场景。
我:redis具体如何实现分布式锁的?
面试者:setnx
我:存在什么问题吗?
面试者:没有什么问题。(不考虑锁失效时间,异常情况)
  1. mysql
我:简单介绍一下mysql的索引结构,联合索引使用情况?
面试者:b+tree,联合索引具体的使用那些索引回答不出来。
我:mysql的事务隔离级别能简单介绍一下吗?具体如何实现的?
面试者:回答出了4种事务隔离级别,如何实现的没有回答出来。
我:mysql的sql优化了解多少?
面试者:只知道建立索引。
  1. spring、docker
我:简单聊一下spring?IOC、DI、AOP
面试者:回答的基本可以,说出了aop动态代理的一些内容。
我:spring的bean的生命周期
面试者:回答不出来
我:docker简单的使用命令
面试者:一个都不知道
  1. 数据结构
我:你们项目中常用的数据结构,查询时间复杂度介绍一下?
面试者:ArrayList、LinkedList、hashmap等,ArrayList的查询复杂说了是0(1)(应该说是O(1))
我:ArrayList、LinkedList的底层数据结构,俩者的不同?
面试者:回答的不错。
我:hashmap的提成数据结构
面试者:数组+hash
我:无语中
  1. 微服务体系
我:你们使用的注册中心是什么
面试者:zookeeper
我:zookeeper遵循了cap哪些理论,为什么?
面试者:cp,不知道为什么
我:说一下其他组件的使用情况?
面试者:说了hystrix、zuul、gateway等,只知道简单使用,具体的不是太清楚。
我:简单聊一下限流是如何做的,幂等性是如何做的?
面试者:限流回答的还算可以,幂等性竟然使用synchronized加锁(分布式场景)
  1. 问答环节
我:有哪些你比较熟悉我还没有问到的吗?
面试者:没有
我:你还有什么要问我的吗?
面试者:没有

总结

经过这次面试,我也总结了一下,自己在面试中的问题,提问问题的方式应该更加通俗易懂,表达的更加清晰一点。也总结一下作为面试者应该如何避免被吊打,
如何吊打面试官。

  1. 简历上的技术栈一定要有所了解,尽量做到有一到两个有深入的了解。
  2. 技术方面的专有名词一定要记牢,不要说错。例如时间复杂度是O(ou)不是0(ling),AQS等等
  3. 常见的数据结构一定不能说错(掉分很严重)。
  4. 不懂的问题不要装懂,不要觉得面试官不知道。
  5. 学会跟面试官进行互动,而不是一问一答。必要时可以反问面试官。
  6. 最后问答环节,一定要抓住,即使面试不行,可以问一些改进的方法等,体现出自己愿意学习的态度。

最后说一下我们面试的基本要求,基础问题、技术栈符合程度、工作态度以及可培养潜力,作为面试官,我希望看到面试者的这些要求都能满足, 现实中很少这种情况,所以面试一定尽可能的表现出自己的综合实力,不能因为技术问题回答的不好就放弃其他实力的展现机会。面试官提问问题一般都是 由浅入深,一步步把面试者引进挖好的坑中,作为面试者一定要尽可能的去引导面试官提问问题,把面试官的提问思路引导自己擅长的领域。

最后,关注我,大家一起努力学习,早日年薪百万!在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值