一面
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 修饰同一个类的两个静态方法同步吗,为什么?
全部评论
(1) 回帖