恒生电子面试题及答案.docxVIP

  • 9
  • 0
  • 约4.67千字
  • 约 5页
  • 2026-03-17 发布于河北
  • 举报

恒生电子面试题及答案

一、基础技术类(Java开发岗高频)

1.说说你对Java中线程安全的理解,以及实际开发中你是怎么保证线程安全的?

答案:线程安全本质上是多线程并发访问共享资源时,能保证数据的一致性和正确性,不会出现脏读、幻读、不可重复读这些问题。实际开发中没那么复杂,不是上来就用锁,而是先尽量规避共享资源——比如能局部变量解决的,就不定义成员变量;如果必须共享,优先用JUC里的并发容器,比如ConcurrentHashMap、CopyOnWriteArrayList,这些比自己写同步代码靠谱。如果需要更细粒度的控制,再用synchronized或者ReentrantLock,synchronized简单易用,适合并发量不高的场景,ReentrantLock可以手动控制锁的释放、中断,还能实现公平锁,比如之前做金融数据同步模块时,用ReentrantLock控制多线程读取数据库的并发,避免连接池耗尽。另外,volatile关键字也能用,它不能保证原子性,但能保证可见性和禁止指令重排,比如单例模式里双重检查锁会用到。

2.数据库索引的作用是什么?怎么判断一个SQL语句有没有用到索引?如果索引失效了可能是什么原因?

答案:索引核心就是加快查询速度,减少数据库扫描的数据量,就像书的目录一样。判断SQL有没有用索引,最直接的就是用EXPLAIN分析执行计划,看type列是不是r

文档评论(0)

1亿VIP精品文档

相关文档