记一次小米的Java面试
时间
12月19号周四上午在BOSS直聘上投了简历,因为当晚要加班,所以约了下周一晚上的视频面试;一面过后第二天hr电话沟通二面时间,定了下周一下午的现场面试,二面三面一起。
一面
-
二分查找(递归和非递归) 反转链表(递归和非递归) 常用Java集合类(主要是Map/List以及对应的线程安全的集合类,比如HashMap/ConcurrentHashMap/HashTable, ArrayList/CopyOnWriteList/Vector) HashMap为什么长度是2的n次幂,数据结构(数组链表红黑树),扩容(包括元素移动的细节),线程不安全的问题 ConcurrentHashMap怎么保证线程安全,1.7和1.8有什么变化,为什么要要这么优化 CopyOnWriteList怎么保证线程安全,为什么这么做 Java synchronized关键字的作用,原理,锁升级、锁粗化、锁消除 volatile关键字的作用,原理 MVCC 事务的ACID,每一项是如何保证的 MySQL的索引结构,为什么是B+树而不是B树
二面
-
先升序后降序的数组排序 求递增数组中相加等于10的元素对 17^400 - 19100计算结果能不能被10整除 一个url对应一个random值,要求设计一个系统,根据url查询random值,具体到表怎么设计,索引怎么加,代码怎么写 画一下项目的架构图,为什么这么设计,哪一块是你做的,为什么这么做,做了多久 …(剩下的题记不的了)
三面
-
自我介绍一下 镜像二叉树(递归和非递归) 删除二叉搜索树的某一个节点 给定数组,求第k大的数字 单例模式的几种写法,解释为什么 tcp握手挥手过程,以及socket的状态变化 线程的状态,以及变化的时机 Java内存模型,堆的组成,gc过程 synchronized修饰同一个类的两个静态方法,会同步吗,为什么 线程池设置了coreSize和maxSize之后,如果线程数量已经达到了coreSize,这个时候进来一个任务,会怎么处理 SQL查询优化怎么做 你的优点是什么,缺点是什么 最快什么时间入职,薪资要求(这俩问题是障眼法,每个人都会问) 你有什么要问我的吗
感受
上一篇:
Java基础知识总结(2021版)
下一篇:
常见的反爬手段、原理以及应对思路