小米手机部后台开发岗社招面经

一面

1、常用 Java 集合类。

(1)Java 中的集合主要分为四类:

•List 列表,有序,可重复;

•Queue 队列,有序,可重复;

•Set 集合,不可重复;

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

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

安全的问题。

3、ConcurrentHashMap 是如何保证线程安全的?

4、1.7 和 1.8 有什么变化?为什么要做这样的优化?

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

6、Java synchronized 关键字的作用,原理,锁升级、锁粗化、锁消除。

7、volatile 关键字的作用,原理。

8、MVCC;

9、事务的 ACID,每一项是如何保证的?

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

11、手撕代码:二分查找;这道牛客题霸上有原题,大家可以去看看:NC105 二分查找

12、手撕代码:反转链表;这道牛客题霸上也有原题,大家可以去看看:NC78 反转链表

二面

1、求递增数组中相加等于 10 的元素对。

2、17^400 - 19100 计算结果能不能被 10 整除。

3、先升序后降序的数组排序。

4、一个 url 对应一个 random 值,要求设计一个系统,根据 url 查询 random 值,具体到表

怎么设计,索引怎么加,代码怎么写?

5、讲项目,画架构图,为什么这么设计,哪一块是你做的,为什么这么做,做了多久。

6、synchronized 修饰同一个类的两个静态方法同步吗,为什么? 

#面经##小米##社招##java工程师#
全部评论
只有两面吗
点赞 回复
分享
发布于 2021-07-15 15:58

相关推荐

1 20 评论
分享
牛客网
牛客企业服务