小米Java面经(已OC)
小米的三面感觉都不太难,实际场景题问的多一些,聊的都很愉快,而且三面感觉是一个领导大佬,会聊的较深,第三面的表现不是很好。
以下是根据回忆的面试题(乱序):
Java:
1、HashMap的八股(底层,链表/红黑树转换原因),
2、HashTable和ConcurrentHashMap的底层实现
3、ArrayList和LinkedList的区别和使用场景(简单的问题反而被提到是亮点回答,所以说不起眼的知识点也很重要)
4、线程池的参数及创建线程的方式
5、volatile保证了什么(问了具体的内存屏障),volatile加在基本类型和对象上的区别
6、synchronized和ReentrantLock区别和场景
7、垃圾回收的算法及详细介绍
8、反射的介绍与使用场景
9、两种动态代理的区别
10、SpringBoot和Spring的区别,自动装配的原理
11、SpringCloudAlibaba的组件介绍
数据库:
1、项目用到的redis数据结构和场景
2、redis快的原因
3、缓存常见问题和解决方案(引申到多级缓存)
4、多级缓存(redis,nginx,本地缓存)的实现思路
5、自己实现redis分布式锁的坑(主动提了Redission),与zk分布式锁的区别(顺带问了zk选举的两轮投票)
6、redis的主从架构和主从哨兵区别,redis主从数据一致性问题
7、MySQL的ACID、隔离级别和并发问题,MVCC聊了下
8、MySQL的聚蔟索引和非聚蔟索引,B+树相比其他结构的优势
计算机基础
1、三次握手目的
2、线程生命周期与状态转换
3、HTTP和HTTPS(主要讲HTTPS)
4、用户态和内核态切换为什么消耗资源
5、select、poll和epoll相比于前两种的优点
其它:
1、跨域问题
2、项目的登录功能
3、用户密码及登录验证(md5+盐)
4、文件存储相关的问题(磁盘、数据库和oss)
5、文件上传功能的设计思路,项目中的执行流程
6、多台服务器下找文件(数据库记录或算法分配)
7、openFeign的底层实现,项目中调下游接口的问题(请求头丢失)和解决(拦截器)
8、高热点场景怎么不打垮服务器,这个讨论的有点久(预判高热点、提前扩容集群、预热、多级缓存、服务治理手段)
9、es+filebeat+kibana框架的日志项目的工作流程,为什么不用logstach、es分词器的选择、目标日志的选取及原因,对于日志数据的处理等
10、竞赛遇到的问题和解决办法
算法:
链表的中间结点
环形链表
删除链表倒数第k个结点(acm模式)
其他问题想不起来了,总的来说,感觉面试体验挺好的,并不只是简单的问答,是有交流和讨论在里面的,大致就是这样吧#面经交流##秋招##小米#
以下是根据回忆的面试题(乱序):
Java:
1、HashMap的八股(底层,链表/红黑树转换原因),
2、HashTable和ConcurrentHashMap的底层实现
3、ArrayList和LinkedList的区别和使用场景(简单的问题反而被提到是亮点回答,所以说不起眼的知识点也很重要)
4、线程池的参数及创建线程的方式
5、volatile保证了什么(问了具体的内存屏障),volatile加在基本类型和对象上的区别
6、synchronized和ReentrantLock区别和场景
7、垃圾回收的算法及详细介绍
8、反射的介绍与使用场景
9、两种动态代理的区别
10、SpringBoot和Spring的区别,自动装配的原理
11、SpringCloudAlibaba的组件介绍
数据库:
1、项目用到的redis数据结构和场景
2、redis快的原因
3、缓存常见问题和解决方案(引申到多级缓存)
4、多级缓存(redis,nginx,本地缓存)的实现思路
5、自己实现redis分布式锁的坑(主动提了Redission),与zk分布式锁的区别(顺带问了zk选举的两轮投票)
6、redis的主从架构和主从哨兵区别,redis主从数据一致性问题
7、MySQL的ACID、隔离级别和并发问题,MVCC聊了下
8、MySQL的聚蔟索引和非聚蔟索引,B+树相比其他结构的优势
计算机基础
1、三次握手目的
2、线程生命周期与状态转换
3、HTTP和HTTPS(主要讲HTTPS)
4、用户态和内核态切换为什么消耗资源
5、select、poll和epoll相比于前两种的优点
其它:
1、跨域问题
2、项目的登录功能
3、用户密码及登录验证(md5+盐)
4、文件存储相关的问题(磁盘、数据库和oss)
5、文件上传功能的设计思路,项目中的执行流程
6、多台服务器下找文件(数据库记录或算法分配)
7、openFeign的底层实现,项目中调下游接口的问题(请求头丢失)和解决(拦截器)
8、高热点场景怎么不打垮服务器,这个讨论的有点久(预判高热点、提前扩容集群、预热、多级缓存、服务治理手段)
9、es+filebeat+kibana框架的日志项目的工作流程,为什么不用logstach、es分词器的选择、目标日志的选取及原因,对于日志数据的处理等
10、竞赛遇到的问题和解决办法
算法:
链表的中间结点
环形链表
删除链表倒数第k个结点(acm模式)
其他问题想不起来了,总的来说,感觉面试体验挺好的,并不只是简单的问答,是有交流和讨论在里面的,大致就是这样吧#面经交流##秋招##小米#