当前位置: 首页 > news >正文

开始改变第七天 第一个面试

Java后端开发岗面经分享:常见问题与解答

某深圳知名通讯行业大厂面经
第一次写面经不知道可不可以把别人的公司名写明白

个人背景介绍

我是一名软件工程专业本科毕业生。在校期间主修高级语言程序设计、数据结构、计算机组成原理、操作系统、计算机网络、数据库原理等核心课程。拥有全栈工程师和Java工程师的实习经历,主要技术栈包括Java、Spring全家桶、Spring Cloud微服务、MySQL、Redis、RabbitMQ等。

面试问题与详细解答

1. 自我介绍

面试官您好,我是软件工程专业本科毕业生。在校期间系统学习了计算机基础理论和软件开发技术,掌握了扎实的Java编程能力和分布式系统开发经验。

在实习期间,我参与了多个企业级项目的开发,包括企业综合服务预约平台和统一运维平台建设,积累了微服务架构、高并发处理、容器化部署等方面的实战经验。我对于技术有浓厚的兴趣,具备良好的问题解决能力和团队协作精神。

2. String是线程安全还是非安全的?

String是线程安全的

这是因为:

  • String类被声明为final,不可被继承
  • String对象一旦创建就不可变(immutable)
  • 所有修改String的操作都会创建新的String对象
  • 由于不可变性,多个线程同时访问同一个String对象不会出现数据不一致问题

3. 线程之间通信大概有哪些办法,有哪些手段?

线程间通信主要有以下几种方式:

共享内存方式

  • volatile变量:保证可见性
  • synchronized关键字:保证原子性和可见性
  • Lock锁:提供更灵活的锁机制

消息传递方式

  • wait/notify/notifyAll机制
  • Condition条件变量
  • BlockingQueue阻塞队列

其他高级方式

  • CountDownLatch:计数栅栏
  • CyclicBarrier:循环栅栏
  • Semaphore:信号量
  • Exchanger:交换器

在实际项目中,我经常使用BlockingQueue实现生产者-消费者模式,使用CountDownLatch协调多个线程的执行顺序。

4. 我看你有用过Spring Cloud是吧?

是的,在多个项目中都有使用Spring Cloud微服务架构的经验:

技术组件使用情况

  • Spring Cloud Gateway:作为API网关,负责路由转发和权限校验
  • Nacos:作为服务注册中心和配置中心
  • OpenFeign:声明式的服务调用客户端
  • Sentinel:实现流量控制、熔断降级
  • Spring Cloud Config:分布式配置管理

项目应用
在企业综合服务预约平台中,我们使用Spring Cloud架构实现了服务拆分,通过Nacos进行服务治理,Gateway统一入口,Sentinel保障系统稳定性。

5. 服务与服务之间的接口调用是怎么做鉴权的?

我们采用以下几种鉴权方案:

网关层统一鉴权

  • 在Spring Cloud Gateway网关层进行Token验证
  • 使用JWT(JSON Web Token)作为身份凭证
  • 网关验证通过后,将用户信息通过请求头传递给下游服务

服务间调用鉴权

  • 为每个服务分配特定的API Key和Secret
  • 使用HMAC签名验证请求合法性
  • 通过Feign拦截器自动添加签名信息

具体实现

// 在Feign配置中添加认证拦截器
@Bean
public RequestInterceptor requestInterceptor() {return template -> {String timestamp = String.valueOf(System.currentTimeMillis());String signature = generateSignature(timestamp, appSecret);template.header("X-App-Key", appKey);template.header("X-Timestamp", timestamp);template.header("X-Signature", signature);};
}

6. 工单与支付数据的一致性是如何保证的?

在权限识别单与支付功能中,我们确实遇到了分布式事务的问题。我们的解决方案是:

问题分析

  • 工单服务和支付服务是独立的微服务
  • 创建工单和发起支付需要保证原子性
  • 传统的本地事务无法跨服务使用

解决方案

  1. 最终一致性方案

    • 使用RabbitMQ消息队列实现异步处理
    • 通过消息持久化和确认机制保证可靠性
  2. 具体流程

    • 工单服务先创建工单状态为"待支付"
    • 调用支付服务发起支付请求
    • 支付成功后,支付服务发送支付成功消息
    • 工单服务消费消息,更新工单状态为"已支付"
  3. 异常处理

    • 设置消息重试机制和死信队列
    • 提供人工干预接口处理异常情况
    • 通过定时任务补偿未完成的交易

7. 你们是怎么部署的?

我们采用容器化部署方案:

技术栈

  • Docker:应用容器化
  • Kubernetes:容器编排
  • Jenkins:持续集成/持续部署
  • Nginx:负载均衡和反向代理

部署流程

  1. 开发人员提交代码到Git仓库
  2. Jenkins自动触发构建流程
  3. 执行单元测试和代码质量检查
  4. 构建Docker镜像并推送到镜像仓库
  5. 在Kubernetes集群中滚动更新服务
  6. 健康检查和服务发现自动完成

环境规划

  • 开发环境:本地Docker环境
  • 测试环境:独立的K8s命名空间
  • 预发布环境:与生产环境配置一致
  • 生产环境:多节点K8s集群,保证高可用

8. 数据库主要学过用过哪些?

关系型数据库

  • MySQL:主要的生产数据库,熟悉索引优化、事务隔离级别
  • PostgreSQL:在部分项目中有使用经验

非关系型数据库

  • Redis:用作缓存、分布式锁、消息队列
  • MongoDB:用于日志存储和文档数据
  • Elasticsearch:专门用于搜索和日志分析

数据库相关技能

  • 熟练掌握SQL优化和数据库设计范式
  • 了解数据库的ACID特性和隔离级别
  • 有分库分表、读写分离的实际经验
  • 熟悉数据库的备份和恢复策略

9. 你们数据量大概多大?单表最大的数据量?

在之前的项目中:

数据规模

  • 用户表:约50万条记录
  • 订单表:约200万条记录(最大的单表)
  • 日志表:按月分表,单表最大约500万条

应对策略
对于大数据量表,我们采取了以下优化措施:

  1. 数据库层面

    • 合理的分库分表策略
    • 建立合适的索引组合
    • 使用覆盖索引减少回表
  2. 架构层面

    • 热点数据使用Redis缓存
    • 读写分离,查询走从库
    • 异步处理非实时需求
  3. 查询优化

    • 避免SELECT *,只查询需要的字段
    • 使用分页查询,避免大数据量一次性返回
    • 复杂查询通过Elasticsearch实现

10. 薪资期望

基于技术能力和市场行情,期望薪资在8000-10000元/月。这个范围考虑了:

  • 技术栈和项目经验的价值
  • 当地Java开发岗位的市场薪资水平
  • 公司的发展前景和培训机会

面试总结与建议

这次面试涵盖了Java基础、多线程、微服务架构、数据库、系统设计等多个方面,比较全面地考察了候选人的技术能力。建议准备类似面试的同学:

  1. 夯实基础:Java核心、数据结构、设计模式等基础知识必须牢固
  2. 深入理解:不仅要会用框架,更要理解其原理和设计思想
  3. 项目经验:结合实际项目讲解技术方案,更有说服力
  4. 系统思维:从整体架构角度思考问题,而不仅仅是代码实现

希望这份面经对正在找工作的同学有所帮助!

http://www.dtcms.com/a/558676.html

相关文章:

  • 网站资源做缓存做网站开发需要的笔记本配置
  • 搜索引擎网站盈利模式长沙旅游必去的八个景点
  • 如何写出让业务满意的性能测试报告?
  • 网站做数据分析整站优化seo平台
  • 烟台网站建设服务网站百度搜索不到
  • 做网站除了dw网站域名注册备案教程
  • 南华大学城市建设学院网站注册企业邮箱哪家最好
  • C++隐藏机制——extern 的边界:声明、定义与符号分配
  • 为什么选择做游戏网站做国外销售都上什么网站
  • C语言完成Socket通信
  • 关于Delphi的一次吵架的后续
  • 深圳网站制作公司兴田德润官网多少中企动力为什么留不住人
  • 怎样制造网站图片教程手机建站源码
  • 视频网站建设流程vps 内存影响 网站
  • 网站内容规划ssh做的大型网站
  • 网站正则表达式怎么做怎么样才能自己做网站打广告
  • 快速部署远程vnc桌面 -docker部署
  • 网站建设运行状况做网站需要服务器还是主机
  • 网站信息核验单南充二手房最新出售信息
  • 开发 网站 团队建设摩托车官网官方网站
  • 易经风水传承者【谷晟阳】
  • 自己做培训需要网站吗甘肃建设厅网站注入
  • 网站自行备案成都附近旅游景区哪里好玩
  • wordpress 注册登陆插件外贸seo是什么意思啊
  • 网站开发调查问卷电影片头在线制作网站
  • 网站制作公司小邓管理咨询公司工作简报
  • 做一个网站多长时间专门做悬疑推理小说的阅读网站
  • 网站图片像素多少上海优化网站
  • 江苏海通建设有限公司网站广西网络广播电视台直播
  • AI基础概念-第一部分:核心名词与定义(二)