一、项目+场景
- 请选一个项目进行介绍?
- 使用逻辑过期时间解决缓存击穿,Redis中是如何存储的?
- 缓存击穿既然是针对热点Key,直接永久不过期,那为啥需要设置逻辑过期时间?
- 优惠券秒杀的接口的请求参数和响应参数是什么?如何设计的?
- 优惠券的查询功能怎么写?为啥没使用分页?要做分页的话前后端如何传参?
- 项目是否上线?是否对外发布?
二、八股 + 实操
- 如果发现Java进程的CPU占用率飙升如何定位?(需要介绍一些命令,然后共享屏幕进行实操)
- jmap如何使用,能够查看哪些信息?(先介绍,然后共享屏幕进行实操)
- 介绍类加载器,让打开IDEA自定义一个类加载器,并打破双亲委派。
- volatile关键字的作用?请写代码举例说明。
- 为啥双重检查的单例代码需要写volatile,不写的话哪几行代码可能会出问题?
三、手撕
- 判断两个树是否相等。“相等”的含义是树的根节点相等,左右子节点要么相互相等(树1.左节点 = 树2.左节点, 树1.右节点 = 树2.右节点),要么互为镜像(树1.左节点 = 树2.右节点, 树1.右节点 = 树2.左节点)。
- 力扣53.最大子数组和。(不是原题,需要改变所求的目标,改为找两个子数组,使得两个子数组的和最大,两个子数组不能有重叠元素)
- 力扣2.两数求和。(不是原题,需要将链表反转,将高位放在链表头,低位放在链表尾部)