电话面试:
第一次面试关注的问题,
1)java基础:
jvm 内存回收,垃圾回收基本原理,Java并发包的线程池,Java8的新特性。nio 堆排序。conrenthashmap , concurrenthashmap 的size实现, spring的事务
2)数据库基础:
事务隔离级别,数据库连接池,锁性等。。MQ如何保证顺序性。spring事务传播性。 数据库跨库一致性
数据库死锁的问题,一个删除昨天一个删除今天的,怎么死锁的。
还有hashmap在并发情况下会出现什么现象? http://www.cnblogs.com/ITtangtang/p/3966467.html
还有个延迟队列和队列排序的问题。
3)如果项目中有用到框架:Redis,RPC、Kafaka、MQ 、Spring 等。
问到的问题比如springmvc工作机制、Spring MVC的aop实现原理,Spring MVC 的请求过程,一个Controller是单例还是多实例。再比如Redis,在项目里面承担了核心缓存左右,选择的持久化方式是什么。redis恢复。Redis的内存废弃策略。redis高并发的key怎么处理。
非常注重源代码,不管是jdk的,还是框架的
还有比如spring,redis源代码的实现
架构方面,分布式框架和中间件问题:
dubbo原理
zookeeper原理
netty原理
高并发综合策略 数据一致性处理策略
4)线上问题处理经验
5)表达对技术的钻研热情
第二次电话面试是交叉面试,同上。
第三次是现场技术终面+HR面
P6的考察侧重点
1、80后。
2给人的感觉是上进心很强,努力学习精进技术的,不愿意混日子。
过往的工作经验是owner一个独立的业务系统,负责系统的设计开发工作,可以不是架构。明确知道系统架构的情况,理解上下游关系。理解该系统的业务定位,该系统当前存在的问题和后续的规划发展有自己的见解。
3 Java基础知识和分布式经验应该很熟悉,框架层面源码如果能研读可以加分。但是如果只是会用而不了解原理就要减分。
4会重点考察分布式/服务化系统(不是大流量高并发)的设计原理,思路,关注点。要会理解一些分布式session、全局流水ID号、服务多次重试幂等、同步转异步、服务监控、最终一致性等原理和应用。
P7的考察侧重点
1 敢说敢做,有气场勇于承担事情
2不是一个单纯的技术实现人员,而是一个有规划,有思考的人。主导一个复杂的系统(多个业务系统完整链路);或者负责一块五脏俱全的业务。
3 对业务系统的理解会更多从商业价值角度去描述,熟悉这块产品链的模式和玩法,或者工业化成熟度较高的专业实现方案。
对基础中间件系统可以描述常见竞品、实现原理算法、核心难点。
4如果是电商交易类背景的,分布式系统设计原则要比P6的同学理解更深入:分库分表分布式事务、性能稳定性的实践。
如果能描述分库分表中间件实现原理(SQLParse、语法树)、单元化/多机房灾备可以加分-就可以往P7+、P8去谈。
5 P7的同学开放式的问题会比较多,会更多在答题思路和内容中去挖掘亮点。
网友评论