面试(用人侧)导论和提纲

§1 对研发人员级别的定义和划分

实习生:可以写简单业务
初级:熟练的进行业务开发,熟悉研发流程和原则
中级:具有较浅薄的设计能力,对技术底层和细节不能一无所知
高级:具有丰富的技术使用经验和项目经验,具有比较成体系的设计能力,对一下底层和细节较为了解,对业务/数据敏感
技术经理:熟悉开发流程,熟悉场景业务场景常见问题已经通用解决方案,具有快速生成设计方案、解决方案、定位处理问题的能力

§2 对受聘者考核的方面

  • java基础
  • 数据库
  • 线程
  • 设计模式
  • 分布式
  • 框架
  • 中间件
  • 算法相关
  • 思路
  • 面向对象
  • 设计
  • 研发流程和沟通能力

§3 面试前的准备

  1. 确定招聘目的,包括但不限于人数、要求限制、薪资、侧重方面
  2. 确定招聘流程
  3. 明确面试的考察/筛选重点,并整理符合本次面试的题目,制定通过标准
  4. 明确对所有通过面试的受试人员的取舍策略
  5. 面试,应将招以致用作为原则,直接考察点为已具备技术能力、工程能力、沟通能力,间接考察点应考虑培训难度和潜力

§4 题目备忘

基础
volatile 的作用
jvm的内存模型

如何快速简洁的深度克隆一个复杂

HashMap底层结构是什么
为什么要引入树
new HashMap(50),数组长度是多少
hash()做了什么
get方法复杂度是多少
put里面流程是什么
扩容时,老元素怎么处理
扩容时,扩容因子变更为1.5行不行

一个空的arraylist和linkedlist,向其中填充10000个元素谁快
linkedlist是单向还是双向
快速安全的删除一个arrayList中的一个特定元素的方式是什么
假设你调用了一个接口,返回了一组数据,你remove了其中一个元素,挂了,为什么
假设你调用了一个接口,返回了一组数据,你要根据数据的某些字段进行排序,你可以怎么做
arrayList初始长度是多少
如何扩容

currentHashMap是线程安全的吗
呈上问,是只要使用它编程,就不用考虑多线程问题了吗
默认并发度是多少

try-with-resource有什么注意事项
try-with-resource如果希望关闭没有实现autoClosed接口的资源,怎么办

数据库
数据库中,哪些列考虑上索引
索引失效的场景
你知道的,所有什么什么索引的名词及其简单释义
索引的数据结构

explain的使用
语法分析时可以用到索引,若sql不存在索引失效的错误写法,但查询时没用索引,分析原因
什么情况下,会出现使用索引查询比扫全表还慢
语法分析时无索引可用,但实际使用了索引,分析原因

数字主键和uuid主键的优劣
如果是你,你如何选择
假如,是针对主键的简单查询,查询100W之后的数据页,发现极其的慢,分析原因,如何解决

事务的隔离级别和传播机制
mysql默认隔离级别
简述一下区间锁或间隙锁

线程
创建线程的方式

简述死锁和活锁
死锁成因
口述给我制造一个死锁
如何避免死锁
若死锁,如何排查

jdk中,若一段代码被synchronized锁了,锁的信息保存在哪里
线程池的意义

设计模式
实际使用的设计模式
工厂和builder有什么异同
假设目前有一个接口,你希望对它做一些调整,但不能改代码,不影响器核心逻辑,你怎么做
假设目前有一个接口,你希望将它扩展至更多场景,核心逻辑是可以的但是输入不支持,怎么办
假设目前你有一个数据,有多个执行器可以处理它,但只有一个可以完美的处理,怎么办
Integer 使用了什么设计模式

分布式、中间件
base,cap
所知的序列化技术有哪些

如何处理分布式事务
缓存击穿、传统、雪崩
redis的常见使用场景
如何保证redis数据的及时性

各种mq之间有什么区别
若某服务化项目,业务普遍通过mq解耦,且业务变化频繁,你优先考虑什么mq
若某项目,数据量极高,业务相对来讲比较稳定,你优先考虑什么mq
mq的消息丢失和重复消费
框架
在springboot框架下,不限于spring的方式,有哪些手段可以做到初始化对象(不是创建,是init)
常用注解
@AutoWired,@Resource
@Condition
@Transactional
在有动态代理的前提下,spring为什么要引入aop
你认为spring是个什么框架,或者引入它的作用有哪些
简述springmvc的三大组件
若希望在日志中观察到sql和执行结果,需要做哪些工作
若你写完了mapper和xml,项目启动时提示找不到,你需要检查什么东西

算法相关
a-y,5*5
id、name、pid,组装树
一个文件,里面一亿条数据,每个数据是一个热点搜索词,如何筛选其中频率最高的100个
有一个字符串,号称是个json,如何检验其语法是否合格,只考虑括号这种成对的符号

思路
有两个小球,在某个高度之下落地无伤,之上落地四分五裂,100层的楼,快速定位哪层会裂
100个人,报数,单数的撤退,在报数,单数的撤退,只留一人,此人几号

面向对象
简述一下委托机制
简述java对象的结构
Father f = new Son(){};体现了oo的什么特性
举例说明实际开发时你使用到的oo原则
若有代码,if分了六种情况,每种情况基本平级但逻辑复杂,如何优化

设计
每分钟会抓取数据,数据分为多个组,每个数据有很多信息,可以问更多细节,如何设计数据结构
一个interface的方法,若按子类实现,可能返回list和set如何制定返回值类型
接上问,若还可能有map和对象呢

研发流程和沟通能力
git使用
你我分属两个研发组,合作开发一个需求,需求拆分完毕,但有一个功能点,谁开发都能实现,从哪些方面考虑应该谁写
你正在开发一个对外接口,需要考虑哪些内容
如果你接到一个明显不合理的需求,你会怎么做
相对于和研发人员交流,你在和非研发人员交流某些问题时会额外注意哪些问题
你发现某个接口或某个接口的使用存在问题,你全文搜索了所有项目所有文件是否万无一失

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值