掌上先机一面(过)
一个小时
自我介绍
提问
引导很多,而且一直往深了说。
- 什么时候开始系统地学习 Java 的?
- 为什么选择学习 Java 作为求职方向(业务比较广)?
- Leetcode 刷了多少题?
- 数组和链表的区别?(我答了读、增删的时间复杂度不同,他一直引导着让我说扩容的时候数组会导致空间碎片化、链表不会)数组和链表在回收上有什么区别?
- 做项目用的是 JDK 几?JDK 17 用的什么回收器?G1 回收器的缩写是什么?特点是什么?
- 垃圾回收算法你知道有哪些?标记清理和标记整理的区别是什么?不同的代适用什么垃圾回收算法(新生代适用于标记复制、老年代适用于标记整理)?
- 你用过什么 SpringBoot 里的什么注解?
- 逻辑有 Dao、Service、Controller 这些层,那如果是一些关于 Redis 操作的一些封装,应该放在哪一层(他说应该再加一层在 Dao 和 Service 之间)?
- SpringBoot(你的项目里)事务怎么实现的?如果先调rpc服务再修改多个表再改 redis 那这个事务很大,该怎么做(事务需要拆分,但是拆分了之后怎么样还能保证事务的功能(这个我不懂))?
- Redis 的高可用怎么保证的?(我说从两个地方来保证:一个是持久化、一个是主从服务器,他说主要是主从服务器)
- Redis 的集群的三个模式?Cluster 和 哨兵的区别?哨兵主节点是怎么选举出来的?如果主节点宕机了,客户端发来的请求怎么知道自己要请求的新的主节点是哪个端口?Cluster 的主节点是怎么选举出来的?
- 你写的消息队列的持久化是怎么实现的?(我发现我可用性、持久化、消息不丢失几个名词没有区分过)
- 了解过什么大数据处理的工具么(我说了解过 Flink,他说 Java 开发和大数据开发界限不明显,让我下去了解一下)?
反问
- 项目是做什么的?(公司是做电商erp的,项目组是给大客户做数据可视化报表的)
- 如果过了下一面快不快?(快)