淘天开发工程师一二面面经
最近参加了淘天的开发工程师岗位面试,经历了一面和二面,三面因为理解错了面试官的意思而遗憾挂掉。以下是我对一二面面试过程的详细记录,希望能对大家有所帮助。
一面
- 为什么要使用线程池?线程池的执行过程、参数和饱和策略是什么?
- 线程的状态有哪些?
- synchronized和lock的区别是什么?lock如何实现公平锁?
- MySQL中InnoDB和MyISAM的区别是什么?InnoDB的索引类型有哪些?MVCC的底层实现原理是什么?update在MVCC中是如何实现的?
- 分库分表的分片方法有哪些?如何保证唯一主键?
- 消息队列如何保证消息不丢失?
- 分布式事务的实现方法有哪些?
- AOP的实现原理是什么?动态代理、JDK和CGLIB分别在什么阶段运行以及为什么?
- Bean的作用域有哪些?如何解决循环依赖问题?
- 设计模式中,观察者模式的关键部分有哪些?
- 类加载器的类型有哪些?有什么区别?如何打破双亲委派?
- 常用的垃圾回收器有哪些?CMS的过程是什么?可达性分析和GC Roots有哪些?
- 如何排查OOM?查看堆内存的指令是什么?
二面
- 如何处理一个log文件中的登录日志?文件太大怎么办?每条数据都不一样如何优化?分布式情况下怎么办?
- 介绍一下JVM,如何查看线程及各种指令?
- 遇到过OOM吗?怎么处理的?
- 了解Linux吗?Linux的一些常用指令是什么?
- MySQL慢查询相关问题有哪些?
- 项目中Redis用的是什么结构?为什么选择这种结构?
- MQ的作用是什么?
- 线程池的核心线程数怎么设置?为什么这样设置?
- 有没有写过单元测试?
以上是我在淘天开发工程师岗位一二面中的面试题目,希望这些信息能对大家有所帮助。祝大家面试顺利!
#软件开发笔面经#