首页 > 笔经面经 > 小米社招Java开发一面面经

小米社招Java开发一面面经

头像
小洪1617
编辑于 2021-06-21 10:11:18 APP内打开
赞 21 | 收藏 152 | 回复13 | 浏览7739
写在前面:问了很多问题,目前还在等消息。。

1.说一下了解的Java数据结构有哪些(ArrayList,LinkedList,Queue,HashMap,ConcurrentHashMap,CopyOnWriteArrayList)
2.HashMap的原理(用哈希数组)
3.数组存的是什么,为什么要转换成红黑树,为什么不能是其他树(链表红黑树红黑树相对平衡,调整效率快)
4.HashMap是否线程安全,会导致什么问题(不是,会导致更新丢失,比如balabala)
5.除了更新丢失,HashMap还会造成什么问题,1.7和1.8的区别?(1.7头插入会导致死循环,1.8改用尾插法)
6.如果要线程安全,应该用什么类(ConcurrentHashMap)
7.ConcurrentHashMap的实现?1.7和1.8都说一下。(分段锁,synchronized,CAS)
8.synchronized和CAS有什么区别,synchronized的实现原理是什么,CAS呢,CAS如何解决ABA问题(有锁,无锁。monitor(Owner字段,EntryQ字段(互斥锁)),判断有无改变,版本号)
9.synchronized和Lock有什么区别,Lock的实现原理是什么(AQS,使用CLH锁,维护一个双向队列,存储阻塞线程。每个线程一直监听前一个节点的状态,如果调用了unlock,则停止自旋。)
10.线程池的重要参数有哪些(poolSize,corePoolSize,maximumPoolSize,ThreadFactory,RejectionHandler)
11.RejectionHandler有哪些,具体如何操作(4种还是5种来着,略)
12.线程池的线程在执行完任务会立刻回收吗?(保留corePoolSize个核心线程)
13.Spring的IOC原理是什么,AOP原理是什么,默认是哪一种代理,两个代理的区别(反射,获取配置的类和属性,然后在运行时注入依赖。代理,JDK,CGLIB)
14.Spring Bean初始化有哪几种方式(忘了)
15.Spring如何解决循环依赖的(忘了,跟他说没有复习Spring,面试官说回去要巩固一下。答案的话应该是用三次缓存)
16.Redis有哪些常用的数据结构,说说它们的常用场景(String,Hash,List,Sorted Set, Set)
17.Sorted Set的数据结构是什么(ziplist+skiplist,细说了什么是skiplist)
18.Redis如何删除过期键(定期+惰性)
19.Redis如何持久化(RDB+AOF)
20.Redis分片有了解过吗?(说成了高可用,不会)
21.Redis高可用,那主从同步,如何更换主节点(哨兵,监控,投票。追问:细说投票算法?不记得了)
22.MySQL有哪些事务隔离级别,分别解决了什么问题(RU,RC,RR,Serial。。。追问什么是间隙锁,就是锁住间隙避免了幻读)
23.MVCC如何实现的?(日志,redo log,undo log,binlog)
24.索引有哪些类型(哈希索引,B树,B+树,说了一下有什么区别)
25.为什么不用范围搜索就用B树,为什么不能用哈希索引?(应该是树可以减少磁盘的IO消耗,但具体为什么说不出来)
26.什么是聚簇索引,什么是非聚簇索引?(InnoDB)
27.说一下MySQL的分库分表
28.遇到慢查询,如何解决?(explain,索引,覆盖索引,limit等)
29.如果已经用到了索引,但因为数据量太大,比如几个亿,如何解决?(分治。追问:细说?加redis缓存,分库分表)
30.说一下JVM的内存模型(堆,栈,Program Counter,元空间)
31.什么时候会触发GC(年轻代不足以分配对象,老年代不足以分配年轻代晋升的对象)
32.用过哪些RPC框架,有没有看过Spring Cloud的源码(SpringCloud,Netty。无)
33.算法题二叉树的层序遍历(用了迭代解法)

总结:问了很多,而且我又说得比较多,所以整个面试下来,感觉都口干舌燥了。。

更多模拟面试

13条回帖

回帖
加载中...
话题 回帖

推荐话题

相关热帖

笔经面经近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐