一面:
自我介绍
根据简历问,做的项目:
项目里面注册功能设置激活码的意义?
项目里面实现的查看用户权限?我是通过配置拦截器。 mysql B树和B+数的区别?
什么情况下可以用B树?
redis 的过期策略?
elasticSearch的索引实现?
elasticSearch的怎么实现分词的?
分布式锁用zookeeper怎么实现,那用redis怎么实现?用redis实现有什么问题?
msql的事务隔离级别有哪些,默认是什么,读已提交会发生什么问题?
mybatis连接mysql与传统的jdbc有什么区别?
redis从机发现key过期了,怎么办,自己删除还是主机去删? 点赞的用户集合用redis什么数据类型去存?set,如果数据太大set装不下怎么解决?我回答的是集群,
第一个存1-1W,第二个存1w1到2万,接着又问,那取的时候怎么去取的?
Kafka的消息是有序的吗?工作原理了解吗?为什么依赖ZK?具体依赖ZK什么?
项目里面怎么实现登录?为什么用redis存验证码?登录凭证什么时候过期?
ThreadLocal原理是什么?
bitmap的原理?
Quartz实现任务调度是怎么做的?还有没有别的组件可以实现这个功能?
手撕代码:二叉树的锯齿状遍历? 我写的dfs实现
Kafka的消息是有序的吗?工作原理了解吗?为什么依赖ZK?具体依赖ZK什么?
项目里面怎么实现登录?为什么用redis存验证码?登录凭证什么时候过期?
ThreadLocal原理是什么?
bitmap的原理?
Quartz实现任务调度是怎么做的?还有没有别的组件可以实现这个功能?
手撕代码:二叉树的锯齿状遍历? 我写的dfs实现
=====================================================
二面:
自我介绍到一半,直接打断吟唱。面试官:“别介绍了,直接开始吧”。
JVM的CMS的步骤?为什么要执行第二部的并发标记?
GCRoot的对象有哪些?volatile的实现原理?
HashMap为什么线程不安全?ConcurrentHashMap的原理?
synchronized的原理?
分布式锁有哪些实现方式?
redis怎么实现分布式锁?
给了一个redis分布式锁的场景,问是否发生死锁? redis分布式锁除了设置过期时间外,还有什么办法可以解决死锁?
Zookepeer又怎么实现分布式锁?
分布式事务有哪些实现方式?我答了4种。手撕代码: 链表奇数升序,偶数降序,要求空间复杂度为o(1),实现链表排序。
规矩一样,要是三面过了,会放三面的面经,下周三没有发出来就凉了。。
===============================================================
三面:
三面感觉是最难的一次,面试官对知识点扣得很细,被问得我都不知道自己在说啥了,不过最后面试官还是说对我很满意,说我过了。
Long[] num=new Long[100];
问分配了多少内存?
for(int i=0;i<50;i++){
a[i] = new Long[i];
}
问又分配了多少内存,计算公式是什么样的?
Java的线程池知道吗?说一下执行流程,又给了一个场景现在没有执行的线程了,线程池是什么样的状态?(具体这里记不清了)
Mysql隔离级别怎么实现的?答:写用锁,读用MVCC。
给了一个场景,在隔离级别为读未提交的状态下,有个变量初始为0,t1线程把变量设置为1,t2把变量设置为2,t1又设置为3,t2要改成4的时候,发生了回滚。
问这时候变量是什么值?
读未提交的级别下,需要加锁吗?为什么?需要加的话,什么时候加,什么时候解。
Kafka怎么保证消息不丢失的?从生产者和消费者的两个角度考虑。(这里聊了很久)
虚拟内存了解吗?讲一下。
线程在就绪状态和创建状态的区别?cpu执行权?是先分配执行权还是准备分配?
在Java里怎么查看一个正在运行的线程?
手撕代码 全排列的变体,输入nums[1,2,3,4,5] k=3 。求所有长度为3的全排列。
反问
问分配了多少内存?
for(int i=0;i<50;i++){
a[i] = new Long[i];
}
问又分配了多少内存,计算公式是什么样的?
Java的线程池知道吗?说一下执行流程,又给了一个场景现在没有执行的线程了,线程池是什么样的状态?(具体这里记不清了)
Mysql隔离级别怎么实现的?答:写用锁,读用MVCC。
给了一个场景,在隔离级别为读未提交的状态下,有个变量初始为0,t1线程把变量设置为1,t2把变量设置为2,t1又设置为3,t2要改成4的时候,发生了回滚。
问这时候变量是什么值?
读未提交的级别下,需要加锁吗?为什么?需要加的话,什么时候加,什么时候解。
Kafka怎么保证消息不丢失的?从生产者和消费者的两个角度考虑。(这里聊了很久)
虚拟内存了解吗?讲一下。
线程在就绪状态和创建状态的区别?cpu执行权?是先分配执行权还是准备分配?
在Java里怎么查看一个正在运行的线程?
手撕代码 全排列的变体,输入nums[1,2,3,4,5] k=3 。求所有长度为3的全排列。
反问
全部评论
(16) 回帖