23届秋招 集度一面二面总结
一面:
- 红黑树何时退化为链表
- 拦截器和过滤器的区别
- myisam支持事务吗
- mysql的各种锁
- 什么时候会触发表级锁
- 线程安全的list
- concurrenthashmap的size操作
- automic类型的缺点以及JUC对其改进后提出的类
- 堆内内存和堆外内存
- 如何动态设置线程池
- 线程的崩溃会导致进程的崩溃吗
- B+树,为啥不用二叉树,层数少了的好处是啥
- arraylist的扩容步骤采用自增主键做索引的好处
- linux查看cpu使用率的命令
算法题:
- 二叉树层序遍历
- 删除有序链表的重复数据
二面:
- RPC框架如何修改为异步的
- BIO、NIO、AIO三者区别
- 往Nacos中注册的是啥
- 为什么选用Netty来做通信框架?还知道其他网络通信框架?
- EventLoop的工作原理,内部有几个工作线程
- 粘包半包怎么解决的
- 负载均衡算法
- bossGroup和workerGroup哪个能写channel
- redis集群与一致性hash算法
- redis 跳表这种数据结构为了什么? 查找快速
- redis如何路由一个信息
- 如果让你设计一个服务注册中心,怎么设计?
- 注册中心怎么进行心跳检测
- 注册中心对于服务端掉线时怎么处理
许愿hr面
个人反思:
算法题可以不用最优解,用你觉得最稳的方案先做出来,之后有优化的方案可以再和面试官讨论。
算法题思路不确定要先和面试官沟通,讨论一下思路,如果面试官不同意那就算了。在自己没太大把握做出来的时候一定不要闷头写。
总的来说,java基础,jvm,多线程,数据库语句和底层结构,操作系统,计网都有涉及,而且往往从项目入手,对用到的技术栈深问,看你的深度,技术选型和对意外情况的考虑等。