20250526 (上海)国泰产险面试问题:

1、自我介绍:

2、自己负责模块流程:

3、如何保证redis 和 数据库数据一致(回答混乱,通过mq,)

(后面说下这块流程)

4、如何保证单点登录在别的机器上无法登录(回答在token中保存了用户ip)

5、你们项目组几个人

6、你在工作中用到过哪些集合类:(回答ArrayList,hashmap ,linkList 、hashSet )

7、hashset 和 ArrayList 有什么区别(只说了hashset去重无序,ArrayList没说出啥)

8、hashset 和 hashMap有什么区别(胡乱回答hashet可以为null值存在,hashMap不可以为null值存在)

9、项目定时任务怎么做的?(不是我负责的)

10、如何限流的?sintinel如何实现限流

11、sintinel设置了哪些参数

12:jvm算法: 简历回答垃圾回收:垃圾回收算法:(可达性分析 和 程序计数器)

13、可达性分析 和 程序计数器 结果有什么不同?

反问

总结失败经验:过于紧张,面试太少,头脑空白。
对比arraylist 和 LinkList

维度 ArrayList LinkedList
数据结构 动态数组 双向链表
随机访问 ✅ O(1) ❌ O(n)
头尾操作 ❌ 尾部插入高效,头部/中间低效 ✅ O(1)
内存效率 ✅ 紧凑 ❌ 分散
适用场景 读多写少,索引访问优先 写多读少,频繁增删优先

对比hashmap 和 hashtable

特性 HashMap HashSet
接口实现 实现 Map 接口(键值对存储) 实现 Set 接口(唯一元素集合)
存储方式 存储键值对(Key-Value 仅存储元素(元素作为 HashMap 的键)
数据冗余 键唯一,值可重复 元素唯一(依赖 HashMap 的键唯一性)
内存占用 较高(需存储键和值) 较低(值统一为固定对象 PRESENT
线程安全性 非线程安全 非线程安全(与 HashMap 一致)

hashset:

1. 基于哈希表的结构
  • 依赖 HashMapHashSet 内部封装了一个 HashMap,元素作为 HashMap 的键,值统一为固定对象 PRESENT
  • 哈希冲突处理:通过链表或红黑树(JDK8+)解决冲突,但元素的存储位置由哈希值决定,而非插入顺序。
    对比hashmap 和 hashtable对比
特性 Hashtable HashMap
线程安全性 线程安全 (方法用 synchronized 修饰) 非线程安全(需手动同步)
null 支持 不允许 键或值为 null 允许 一个 null 键和多个 null
继承关系 继承 Dictionary 类(已过时) 继承 AbstractMap
初始容量与扩容 默认初始容量 11 ,扩容为 2n+1 默认初始容量 16 ,扩容为 2n
哈希值计算 直接使用 key.hashCode() key.hashCode() 二次哈希(减少冲突)
迭代器 使用 Enumeration(不支持快速失败) 使用 Iterator(支持快速失败)
性能 低(同步锁开销) 高(无锁,哈希优化)
推荐使用场景 已过时,不推荐使用 主流选择(单线程或配合同步机制)