好未来后端一面、二面汇总(20220820)
一面
- 研究方向,为什么学Java
- Java技术栈
- 重载与重写的区别
- String、StringBuilder、StringBuffer区别
- HashSet的理解、底层数据结构、为什么用红黑树不用其他树、线程安全吗
- HashMap不是线程安全,哪些安全
- ArrayList底层,线程安全吗,有哪些线程安全呢?CopyOnWriteArrayList了解吗
- Lock与synchronized区别,公平锁是如何实现的
- Lock获取锁的基本条件、具体是怎么做的、变量如何变化的、CAS怎么实现的
- volatile关键字的理解
- ABA问题如何解决
- 实现线程的方式,你习惯用哪种
- wait()与sleep()区别
- 线程池拒绝策略触发时机
- 核心线程数与最大线程数设置的建议
- MySQL索引的理解
- InnoDB索引有哪些类型
- 索引底层数据结构,为什么用B+树
- 主从同步如何实现的,具体操作过程
- 建立索引的建议
- 一个表最多建立多少个索引
- 如何排查MySQL的问题,例如CPU利用率过高
- HTTP的理解
- HTTP长连接
- 服务器能主动push给客户端吗?HTTP 2.0如何做的
- WebSocket长连接了解吗
- TCP的理解
- 为什么三次握手四次挥手
- TCP粘包如何产生的,如何解决
- 流量控制算法了解哪些
- Spring Cloud用过吗
- 项目是在公司做的还是学校做的
- ES为什么搜索那么快
- Spring了解哪些
- 循环依赖、如何解决的、什么情况下Spring都能解决吗
- 项目给你的收益
- 口述检测链表是不是有环
- 代码:一个字符串回文字符串的数量
二面
- TCP四次挥手为什么有time_wait状态
- 隔离级别,一般用哪种
- 阻塞IO与非阻塞IO
- 非阻塞IO有哪些实现方式,区别是什么
- 零拷贝,不用零拷贝需要多少次状态切换
- 乐观锁与悲观锁
- 死锁,说一个数据库死锁的场景
- 在实习做哪些工作
- 登录状态失效时间,续约
- 令牌桶算法
- 解决超卖,解决的了分布式问题吗,效率不高怎么优化
- 消息队列挂了怎么办
- 消息队列的消息如何实现顺序消费
- 限时抢购如何实现
- 算法:数组中第二大的值,如何优化
- 算法:手写单例,双重校验锁,为什么构造方法是private,为什么用volatile,synchronized(this)可以吗
- Spring Boot优势,如何实现自动装配
- 实习的技术栈
- MyBatis与JPA的区别
- K8S service概念(不会,我又没说我会K8s)