【阿里】【菜鸟网络】- 一面
一面1h
- 项目深挖 (AC自动机,几个项目用到的算法。10分钟)
- java基础
- ArrayList LinkedList
- HashMap ConcurrentHashMap
- JVM内存区域 都介绍下
- 描述下gc过程。minor gc或者 full gc。
- 说了下两个survivor Eden。进行gc的过程还有一些gc算法和确定对象是垃圾的方法
- volatile
- 说了下JMM模型,和volatile 怎么做到让变量可见详细步骤。
- 追问:我从哪里学的这些知识(各种地方)
- Mysql 索引结构
- 讲了索引结构,页表目录项,索引页,数据页结构。
- 问线上碰到fullgc 怎么解决
- 追问怎么解决线上cpu 100%,怎么定位,怎么解决。(没想到好的办法)
- Mybatis
- Mapper接口怎么和xml中sql 关联上的(namespace + id 定位sql,动态代理生成Mapper的动态代理)
- 有没有看过啥开源项目或者参加开源项目
- 项目有没有遇到什么问题,嘴贱说了没碰,都自己解决了,面试官说那我给你出个比较刁转的题你考虑考虑..........
- 问题:
- Mysql要删除一批冷数据(1亿+)删除的条件用户方给定。且给的字段没有设置索引啥的,要求不能有慢sql,且不能影响用户体验,要求删除尽可能快,且不能拖慢mysql性能。
- 说了分治的想法,说了分批次删除,但是获取主键id的好办法没想到。后面提示了下主键是连续的。
- 答:采用分治的思维,先使用低优先级的线程去分批次查询要删除的id,查到最低的id,然后出另外一个边界也就出来了 就是id+数据量。然后利用上主键索引去执行分批次删除。
总结:面试官挺好的,开头就说了可能会打断,别介意,体验非常好,场景题一直在引导。
最后也说了我的学历不太好的问题(阿里有硬指标)。笔试和行测也不太行,后面如果过了会补笔试没过就gg(估计是让被挂别哭吧......)
问题答是都答上来了......希望给个机会吧,双非不易
==============================3.18======================================