经纬恒润Java开发一面面经
面试题目
- 学习Java的路线规划
- 项目经验:RAG项目构建细节、实习过程中的技术难点
- MinIO使用方式及数据库表设计
- RBAC权限设计模型,及其与ABAC的区别
- Java基础:泛型、反射、数组与List的转化、JDK 1.8 Stream流
- 性能优化:数据库优化技巧、索引失效情况、分页查询优化
- Spring Boot:自启动执行业务代码的方式、定时任务实现
- 其他:微服务接触情况、上线流程、实习时长与规划
- 反问:业务内容、技术栈期望、面试反馈
参考解析
- RBAC vs ABAC:RBAC(基于角色的访问控制)通过用户-角色-权限进行管理,适合大多数企业;ABAC(基于属性的访问控制)通过用户属性、环境属性和资源属性进行动态判断,适合细粒度、复杂场景的权限控制。
- 索引失效:常见包括:在索引列上做计算/函数/类型转换、使用
!=或<>、使用like以%开头、or连接非索引列、违反最左前缀法则等。 - Spring Boot 自启动:可通过实现
CommandLineRunner或ApplicationRunner接口,在run方法中编写初始化逻辑;也可使用@PostConstruct注解标记初始化方法。 - 定时任务:简单场景可使用 Spring 自带的
@Scheduled注解配合@EnableScheduling;复杂分布式场景推荐使用 XXL-Job 或 Quartz。