25年银行行业java后端常问高频面试题
延迟双删(先删Redis→更新DB→再删Redis)本地事务(@Transactional) +等保2.0、PCI-DSS、数据跨境合规。银行系统对线程安全要求极高,需深入理解。核心系统、清算、轧差、冲正、备付金等。分布式锁防并发(Redis/ZK)订阅Binlog(Canal同步)幂等性设计(唯一订单号+状态机)规则引擎(Drools)实时风控。大数据分析(Flink流处理)(可中断、公平锁),
一、技术八股文高频题(银行侧重点)
1. Java基础 & 并发编程
-
HashMap在JDK1.8中的优化?ConcurrentHashMap如何保证线程安全?
-
银行系统对线程安全要求极高,需深入理解 CAS+synchronized 的实现细节。
-
-
synchronized和ReentrantLock的区别?银行系统更推荐哪种?
-
银行系统倾向 ReentrantLock(可中断、公平锁),需解释 AQS 原理。
-
-
ThreadLocal使用场景?如何解决内存泄漏?
-
银行常用ThreadLocal存储 交易流水号,需强调
remove()
的必要性。
-
-
volatile能否保证原子性?AtomicInteger底层原理?
-
银行高频交易场景需关注 原子操作,结合 CAS+自旋 解释。
-
2. JVM调优(银行关注点)
-
JVM内存模型?方法区存放什么数据?
-
银行系统重视 元空间(Metaspace) 溢出问题(如动态生成类)。
-
-
G1垃圾回收器如何适应大内存银行系统?
-
重点回答 Region分区 和 可预测停顿 特性。
-
-
如何排查OOM?银行系统常用哪些工具?
-
必提 MAT分析堆转储 和 Arthas在线诊断。
-
3. 数据库 & Redis
-
MySQL事务隔离级别?银行系统用哪种?为什么?
-
必须回答 可重复读(RR),解释 MVCC+间隙锁 防幻读。
-
-
Redis持久化选RDB还是AOF?银行如何保证数据不丢失?
-
银行通常 AOF+每秒刷盘,需补充 RDB+AOF混合模式。
-
-
如何用Redis实现分布式锁?RedLock算法缺陷?
-
银行要求高可靠,需指出 ZooKeeper临时节点 更合适。
-
4. 分布式 & 微服务
-
CAP理论如何取舍?银行系统更侧重哪两点?
-
明确回答 CP(一致性+分区容错性),如支付系统必须强一致。
-
-
TCC分布式事务实现原理?银行如何补偿异常?
-
重点解释 Try-Confirm-Cancel 三个阶段和 对账机制。
-
-
Dubbo如何适配银行老旧系统?
-
需提及 协议兼容(HTTP/HTTPS) 和 灰度发布。
-
二、银行业务场景题(必考!)
1. 高并发 & 资金安全
-
设计一个银行转账系统,如何保证ACID?
-
答:
-
本地事务(@Transactional) + TCC补偿
-
分布式锁防并发(Redis/ZK)
-
异步对账(定时核对余额)
-
-
-
如何防止重复支付?
-
答:
-
幂等性设计(唯一订单号+状态机)
-
数据库唯一索引
-
Redis防重Token
-
-
-
日终批量任务跑失败了怎么办?
-
答:
-
任务分片 + 断点续跑
-
补偿Job(基于日志恢复)
-
人工干预兜底
-
-
2. 数据一致性与风控
-
数据库和Redis数据不一致怎么办?
-
答:
-
延迟双删(先删Redis→更新DB→再删Redis)
-
订阅Binlog(Canal同步)
-
银行场景加 对账补单
-
-
-
如何检测和防止金融欺诈(如洗钱)?
-
答:
-
规则引擎(Drools)实时风控
-
大数据分析(Flink流处理)
-
人工审核兜底
-
-
3. 安全合规
-
银行系统如何加密敏感数据(如身份证号)?
-
答:
-
国密SM4(对称加密)
-
脱敏显示(如
320********1234
) -
硬件加密机(HSM)
-
-
-
如何防止SQL注入?MyBatis怎么处理?
-
答:
-
永远用
#{}
(预编译) -
银行额外要求 SQL防火墙
-
定期漏洞扫描
-
-
三、银行面试加分项
-
熟悉金融业务术语:
-
核心系统、清算、轧差、冲正、备付金等。
-
-
了解监管要求:
-
等保2.0、PCI-DSS、数据跨境合规。
-
-
技术结合业务:
-
举例说明如何用 分库分表 解决账户历史数据查询问题。
-
需要25年最新完整版面试场景题库丝我890嗱
更多推荐
所有评论(0)