小米秋招提前批Java面经
一面 56分钟
1.项目中如何使用redis?
2.redis的数据结构类型?zset的底层数据结构?什么是跳表?
3.项目中SpringSecurity的权限模型是怎么样的?
4.用户的授权信息如何存储?
5.了解过RBAC吗?
6.说一下你知道的垃圾收集器。说一下CMS和G1的区别。
7.说一下你知道的设计模式,说一下单例模式和工厂模式。
8.算法题:两个有序数组求交集。
9.你喜欢的技术领域:业务方向还是基础架构。
10.你知道SaaS吗?说一下看法。
反问:我表现怎么样?校招对于应届生的考察角度。
答:你肯定是对源码有钻研的,涉猎也比较广,很多东西都知道,我觉得你这边还是挺不错的,但是算法还是要慢慢加强练习。
二面 52分钟
1、校园论坛项目介绍
2、点赞和点踩的QPS是多少?
3、MySQL的主从复制,读写分离怎么做的?
4、点赞和点踩服务端和前端是怎么处理的?
5、ES如何实现全文搜索的功能?ES的底层数据结构?【倒排索引、链表+字典、Ik分词器】
6、说一下kafka的内部结构,消息队列存在的意义?【请求异步响应、削峰、负载均衡、流程解耦】
7、讲一下prometheus的指标类型有哪些?
8、在斗鱼的实习中如何使用prometheus?数据源的数据如何被抓取到prometheus?
9、MySQL中innodb存储引擎和myIsam存储引擎的区别?【行级锁和表级锁】
10、innodb一定会使用行级锁吗?【还会使用next-key-lock】讲一下next-key-lock
11、还了解其他的语言吗?【go语言】讲一下go语言的协程
12、进程和线程的区别是什么?
13、讲一下ReentrantLock?ReentrantLock是如何实现公平锁和非公平锁?【引出AQS】
14、讲一下Java中反射的原理。
15、讲一下JVM运行时数据区,方法区中存放的是哪些数据【类信息、常量池、JIT即时编译器】?
16、算法:判断链表中是否有环。【快慢指针AC】
17、还能要用其他的方法吗?你想想能不能用哈希表做。
你有什么要问我的吗?【您作为校招的面试官,觉得我作为一个校招应届生候选人表现如何?我该如何优化自己?】
答:你挺好的,对技术有追求,之后再遇到其他的技术问题也不会有什么问题。
结束语【我】:谢谢您,今天的面试体验非常棒,希望有机会能加入小米和您一起工作?
结束语【面试官】:有机会,我感觉你还是挺不错的,那今天就到这里,后续会有HR跟你沟通。