小米java面经

写在前面

小米的面试算是简单,相对实用一些。更多的是考察项目和动手能力,设计能力。 

一面

    项目

        架构设计...

        你一天的工作安排和内容

        接到一个需求后,你是如何开展工作的

项目管理的那一套,需求分析、概要设计、KO、详细设计、coding、测试、UAT验收、上线。

    技术

redis原理:String类型和SDS的动态扩容和惰性回收

mq的原理

线程池的原理

jvm里CMS


    算法题

            忘了当时写的什么了 

        

    部门介绍

            ...

二面


项目


技术

jvm:cms和G1的区别

类加载过程

加载 验证 准备 解析 初始化

 验证的时候 final的 赋值 static的初始化 = 0

 初始化时候 static = 100

mq知识

redis渐进式rehash

    这个问题我比较熟悉,先说明为什么这样设计,在讲明白这个过程如何操作的,最后说明在这个过程有增删改查等操作的情况

数据库:可重复读如何解决幻读,锁覆盖、索引



算法题


有序数组,找到绝对值最小的那个数

解题思路

1、因为有序,比如升序,第一个值如果是正数,则为最小

2、第一个数如果为负数,可以直接中中间的数字,然后和左右对比一下看是否绝对值最小



三面


项目

    多个项目都有详细的质疑 

技术   

redis集群有几种?主从、哨兵、分片;缓存击穿的处理方法


redis

mysql问题

select count(1), country from Table where name = 'lisi' and age>10 and age<20 group by country;

给 name age country  加联合索引

select count(1), country  from Table where name in ('zhangsan',"lisi") and age>10 and age<20 group by country;

没有很好的方案

先给name加, 在给 age 加

或者给name age加联合索引


线程同步问题

class A

static sync m1;

sync m2;

sync m3;

new a1 ;

new a2;

a1.m1, a1.m2  不互斥

a1.m2,a1.m3    互斥

这道题答错了

算法题

class Node {

    Node right;

    Node left;

    int val;

}

                        9

                10          13

            12    15    18

                                  20

打印从左向右看到的效果    9,10,12,20

其他

未来规划

部门人员架构组成

四面

一直追问项目

让设计一个电商平台的积分系统,这个自我感觉回答的较好一些,后续有机会公开出来大家讨论一下。 


HR


直接开门见山,问我有没有拿到其他公司的offer?告诉我小米给的职级和薪资。解释清楚了复杂的股票方案等。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容