一面(100分钟)
自我介绍
没看我简历,问我要从哪里开始聊起,我说线程池..(埋雷)
- 线程池
线程池的四组成,七参数
四种常见的线程池
cachedThreadPool的工作原理(我说了线程池的工作流程)
超过keepAliveTime的线程如何了
- HashMap
hashmap在jdk1.7和jdk1.8的区别(链表和红黑树、扩容时的头插和尾插)
在多线程下头插法引起的环化
红黑树的数据结构,如何维持相对平衡
concurrentHashMap线程安全,分段式锁
- 多线程
ReentrantLock和synchronized的区别
ReentrantLock的实现(AQS)
AQS中A代表什么,S代表什么(不清楚..我只知道实现原理..)
什么是公平锁,用什么数据结构实现
什么是线程安全
CAS
如何解决ABA问题(增加版本号)
版本号是什么类型的
Volatile是什么,有什么特性(可见性、非原子性、禁止指令重排)
Happen-before原则
- JVM
JVM内存模型
CMS和G1的区别
标记清除算法优化?(不就是改进成标记整理吗)
- MySQL
Mysql中有哪些索引(B+树索引、哈希索引)
两者的区别,为什么不使用哈希索引代替B+树索引
范围查询怎么走索引
聚簇索引和非聚簇索引
- 计算机网络
三次握手中为什么进行第三次握手,如果只有两次会出现什么问题
如果服务器端有很多time-wait,可能是什么问题,怎么优化(我答可能是时间设置过长或受到了攻击..前者可以通过优化参数解决)
https加密原理(对称加密和非对称加密)
CA证书的作用
- 操作系统
线程、进程和协程的区别
进程之间的通信方式
线程之间的通信方式
场景题:如果CPU占用率过高,怎么查看(linux top指令),可能是出现了什么原因
- Redis
Redis为什么速度那么快
Redis有哪些数据类型
zset使用的是什么数据结构(跳表)
跳表是怎么实现的(答成多链表层级查找了,正确的应该是在链表上建多个索引查找)
- 数据库题
问了springboot做的项目发布了么?
还问了知道RPC框架吗(因为没用过,只能说知道,但是不是很清楚)
- 算法题
- 其他
闲聊:研一的课程有哪些?研究方向?学java多久了?一周能实习多久?怎么体现你的学习能力很强?
后记:问的比较深,问到我答不上来/答的不准确为止…第二天18:00前发二面邀请
二面(60分钟)
(记的不是很清楚了,全凭回忆)
自我介绍
- java
如果两个线程一起操作,如何保证线程安全
问了解哪些原子类
countdownlatch实现
Try..catch..finally应用在线程出现问题时解决计数器减一问题(与前一问连着)
- 数据库
数据库索引有哪些,区别(老八股了)
Mysql操作会哪些(怕直接出sql题,就说只会一点点简单的..)
事务的ACID分别是什么
事务的四个隔离级别
从读已提交到可重复读是优化了什么
- 数据结构
数组和链表的区别
链表在java中有哪些实现(LinkedList/ArrayList),两者区别是什么
- 算法
口述链表逆序的过程
问了排序知道哪些,按照时间复杂度说了一下
问了快排的时间复杂度和空间复杂度,并口述快排的思路
算法题:力扣78.子集
后记:
一天后发了offer。效率还是很高的….
全部评论
(3) 回帖