杭州天健咨询 Java 实习面经(120/天)
1)自我介绍
2)开源项目功能点介绍
我参与开发了一个名为XX的开源项目,主要功能包括:
- 核心功能A:实现了XX功能,采用XX技术解决XX问题,特点是XX
- 模块B:提供XX能力,支持XX场景下的XX需求
- 特色功能C:创新性地使用XX方法,解决了行业内的XX痛点
- 扩展性设计:通过XX设计模式,使系统易于扩展和维护
该项目已在GitHub上获得XX星标,被XX公司采用于生产环境。
3)向量型数据库了解吗
向量数据库是专门为存储和查询向量数据(高维数值数组)优化的数据库系统,主要用于相似性搜索。我的理解如下:
- 核心特性:
- 高效处理高维向量数据
- 支持近似最近邻(ANN)搜索
- 提供相似度计算能力
- 常见应用场景:
- 推荐系统
- 图像/视频/音频检索
- 自然语言处理
- 异常检测
- 代表产品:
- Milvus
- Pinecone
- Weaviate
- FAISS(Facebook开发的库)
- 与传统数据库区别:
- 传统数据库擅长精确匹配,向量数据库擅长相似性搜索
- 使用余弦相似度、欧氏距离等度量方式
4)SpringCloud 微服务了解多少
- 核心组件:
- 服务注册与发现:Eureka/Nacos
- 负载均衡:Ribbon/Spring Cloud LoadBalancer
- 服务调用:Feign/OpenFeign
- 熔断降级:Hystrix/Sentinel
- 网关:Zuul/Spring Cloud Gateway
- 配置中心:Spring Cloud Config/Nacos
- 分布式追踪:Sleuth + Zipkin
- 实践经验:
- 使用Spring Cloud Alibaba生态(Nacos+Sentinel)构建微服务
- 实现基于JWT的微服务认证授权
- 设计分布式事务解决方案(Seata)
- 微服务链路监控和日志聚合
- 理解:
- 微服务架构的优缺点及适用场景
- 服务拆分原则(DDD领域驱动设计)
- 容器化部署(Docker+K8S)经验
5)单体事务是如何保证的,介绍一下
在单体应用中,主要通过以下机制保证事务(ACID特性):
- 本地事务:
- 使用数据库事务(如MySQL的InnoDB引擎)
- 通过
BEGIN、COMMIT、ROLLBACK控制 - Spring的
@Transactional注解简化管理
- 实现原理:
- 原子性:通过undo log实现回滚
- 一致性:由应用和数据库共同保证
- 隔离性:通过锁机制和MVCC实现
- 隔离级别:读未提交、读已提交、可重复读、串行化
- 持久性:通过redo log保证
- Spring事务管理:
- 传播行为(PROPAGATION_*)
- 隔离级别(ISOLATION_*)
- 回滚规则
- 事务超时设置
- 注意事项:
- 避免大事务
- 注意事务失效场景(如自调用、非public方法等)
- 合理选择隔离级别
6)RBAC 角色权限是怎么控制的?
RBAC(基于角色的访问控制)是一种权限管理模型,我的理解如下:
- 核心概念:
- 用户(User):系统使用者
- 角色(Role):权限集合
- 权限(Permission):资源+操作(如user:add)
- 数据模型:
- 用户-角色多对多关系
- 角色-权限多对多关系
- 可能需要部门/岗位等扩展维度
- 实现方式:
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
大学四年面经(学院本) 文章被收录于专栏
大学全部面经从大一到大四,从实习、秋招、春招等等,各种岗位,中小厂,乃至大厂面经! 公粽号:程序员落叶,里面分享全部文章详情。

查看12道真题和解析
