小米java内部面试题_小米社招面试经验java,面试题整理(一面二面)

下面要给大家分享的是一个小米java社招的面试经验,内容包括了一面二面的面试题,对小米java社招感兴趣的小伙伴可以来了解一下。

面试题(一面)

1、volatile关键字的作用是什么?原理是什么?

volatile在Java并发编程中常用于保持内存可见性和防止指令重排序

2、常用Java集合类

List 列表,有序,可重复;Queue 队列,有序,可重复;Set 集合,不可重复;Map

映射,无序,键唯一,值不唯一每种集合类型下都包含多个具体的实现类。

3、Java synchronized关键字的作用是什么?原理,锁升级、锁粗化、锁消除

4、二分查找(递归和非递归)

5、反转链表(递归和非递归)

6、事务的ACID,每一项是怎样保证的?

7、HashMap为什么长度是2的n次幂,数据结构,扩容(包括元素移动的细节),线程不安全的问题

8、ConcurrentHashMap怎么保证线程安全,1.7和1.8有什么变化,为什么要要这么优化

9、CopyOnWriteList怎么保证线程安全,为什么这么做?

10、MVCC

11、MySQL的索引结构,为什么是B+树而不是B树?

B树在提高IO性能的同时,并没与解决元素遍历时效率低下的问题,正是为了解决这个问题,B+数应运而生。

B+数只需遍历叶子节点即可实现整棵树的遍历,而B树必须使用中序遍历按序扫库,B+树支持范围查询非常方便。这才是数据库选用B+树的主要原因。

面试题(二面)

1、

相关文章

暂无评论

暂无评论...