东软Java实习一面面经
面试题目
- 自我介绍及在校经历、成绩排名情况。
- 实习经历拷打(约10分钟)。
- 详细阐述项目中的事务处理机制。
- 简述垃圾回收算法相关知识。
- MySQL数据库相关:讲讲索引的原理。
- 如何理解主键?
- 为什么不能给所有字段都添加索引?
- Spring AOP的原理是什么?
参考解析
- 数据库事务:事务具有ACID特性(原子性、一致性、隔离性、持久性)。在Java项目中通常通过
@Transactional注解实现,底层由AOP代理控制事务开启与提交。 - 垃圾回收算法:主要包括标记-清除、标记-复制、标记-整理以及分代收集算法。新生代通常使用标记-复制,老年代使用标记-整理。
- 索引原理:索引底层多采用B+树结构,通过减少磁盘I/O次数提升查询效率。主键是唯一且非空的标识符,InnoDB存储引擎中,主键即聚簇索引。
- 为什么不给所有字段建索引:索引会占用物理存储空间;且在插入、更新、删除数据时,索引需要同步维护,会严重降低写操作性能。
- AOP原理:面向切面编程,通过动态代理(JDK动态代理或CGLIB)在不修改源码的情况下,对目标方法进行增强(如日志、事务、权限控制等)。