小米 日常实习 一面,二面(已OC)
小米 日常实习 一面,二面(已OC)
很早之前的面经了,一直没总结,现在总结一下
一面:10.25日 晚上7点 60min
1,自我介绍
2,你的RPC处理粘包半包用的什么协议?(自己定义的)
就讲了一下概念,产生的原因,nagle算法,协议字段
3,框架你是怎么分层的?balabala
4,线程池参数有哪些?说一下线程池工作流程
5,核心线程数能回收嘛?(不会自动回收) 那如果你想回收呢(可以回收的)
怎么回收呢? (乱说的 不会 哈哈哈哈哈 说的有个API可以)
6,讲一下hashmap吧 ?
7,如何使他线程安全呢?
8. CAS有哪些问题?
9,讲一下Mysql的隔离级别。
10,索引的底层结构是什么?B+树 一般查询查询几次 三层能存多少数据呢?
11,为啥用B+树,不用hash,不用跳表呢?
12,redis用过哪些类型 ? 讲讲底层数据结构
13,QPS的提升,是怎么衡量的,怎么做压测的?
14,算法题:最长公共子序列 返回的是String
15,反问
二面:10.28日 上午11点 120min(确实给我搞晕了)
1,自我介绍
2,做这两个项目的目的
3,你觉得你这个项目的亮点是什么,你大概给我介绍一下吧
4,热帖模块讲一下?
5,谈谈你对集合类的一个理解吧?
6,谈谈你了解的多线程实现的工具类吧?
7,多线程在使用的过程中,需要注意什么问题呢?(死锁)
8,如果我是一个不懂技术的人,你给我讲讲死锁,给我讲清楚
9,java中一个对象new出来到最终消亡都经历了什么?
10,能谈谈类加载器嘛?
11,那我们可以加载两个object进来嘛?
(面试官那边网络很卡,面试官去开了个流量)
12,java出现了内存泄漏你怎么去排查他?
13,dump出来的文件一般多大呢?(G) 用什么东西dump出来嗯
14,主动去扯我知道内存泄漏原因,让他问我。。。。然后成功让他问我threadlocal
15,设计题:设计一个抢会议室的系统,你会怎么去做呢?这个有非常多的方案,你可以任意发挥(加锁)
16,如果是分布式环境下呢? (分布式锁)(说一半,网又断了)
17,前面你提到了锁续期是吧,那如果我加了10把锁,要多少个线程来做续期呢?1个
18,一个线程怎么实现呢?说说具体方案
19,为了防止把别的线程的锁释放的情况,需要UUID或者线程ID去做判断,那么判断+释放就不是原子的了,
怎么解决呢? lua脚本
20.你还有啥解决方案嘛,这个解决方法千千万,你还有吗(无)
21,比如单机情况下除了加锁,还有什么方式嘛?那我就不为难你了(哈哈哈 我人晕了)
22,left join 和inner join 有什么区别?
23,给了一个sql,让加索引。
24,做一个后台系统,维护老师和学生的数据,老师和学生属于什么关系?(多对多)
25,做这个表设计,需要几张表存储,分别怎么设计?
26,然后就是围绕这个设计,展开一些讨论,写了一些sql,进行一些优化,分页优化之类的。
27,写了一个工程的应用题。(写了半个小时,没写出来,他说思路是对的,让我下去写,写完发给他看)
28,然后加了个微信,反问。