Skip to content

java基础

  • Java的四大特性(封装、继承、多态、抽象)是什么?请结合实际项目举例说明。
  • 抽象类和接口的区别是什么?什么时候应该用抽象类,什么时候用接口?
  • Java中==和equals()的区别是什么?如何重写equals()和hashCode()?
  • 线程池参数
  • 使用过哪些线程池配置策略?如何避免线程阻塞?
  • springboot接口防抖
  • ArrayList和LinkedList的区别是什么?如何选择?
  • 创建线程的几种方式?为什么推荐使用线程池?
  • synchronized和ReentrantLock的区别是什么?如何避免死锁?
  • volatile关键字的作用是什么?能保证原子性吗?
  • Java中异常分为哪两类?Error和Exception的区别是什么?
  • 什么是受检异常(Checked Exception)和非受检异常(Unchecked Exception)?如何选择?
  • 在项目中如何处理全局异常?
  • Java 8的Lambda表达式和Stream API有什么作用?请举例说明。
  • 什么是函数式接口?@FunctionalInterface注解的作用是什么?
  • Optional类解决了什么问题?如何避免空指针异常?
  • 如何理解多态?举例说明运行时多态的实现(如方法重写)
  • 抽象类与接口的区别?Java 8后接口的默认方法对设计的影响?
  • ArrayList和LinkedList的底层实现及适用场景?
  • ConcurrentHashMap如何保证线程安全?与Hashtable的区别?
  • 受检异常(Checked)与非受检异常(Unchecked)的设计哲学?
  • 自定义异常的应用场景及实现要点?
  • 线程生命周期及状态转换?wait()、notify()与sleep()的区别?
  • 如何实现线程安全?synchronized、ReentrantLock、Atomic类的对比?
  • 线程池的核心参数(如corePoolSize、workQueue)及拒绝策略?

微服务

  • 你在项目中为什么选择微服务架构?
  • 问题示例:
  • 如果让你从零设计一个微服务架构,你会考虑哪些核心组件?
  • 微服务未来的发展趋势是什么(如Service Mesh、Serverless)?
  • 对比Spring Cloud与Dubbo的优劣。
  • 在微服务中,如何通过Feign实现文件上传?
  • Spring Cloud的核心组件有哪些(如Eureka、Feign、Zuul)?各有什么作用?
  • 什么是微服务?与单体架构相比有哪些优缺点?
  • 如何合理拆分微服务?是否遵循DDD(领域驱动设计)原则?
  • 微服务间通信如何保证性能?是否用过gRPC或Dubbo?
  • 微服务间如何通信?REST和RPC(如Dubbo/gRPC)如何选择?
  • 如何解决服务调用链过长导致的性能问题?是否使用过异步通信(如MQ)?
  • 如何实现服务发现与负载均衡?是否用过Nacos、Consul或Eureka?
  • 如何防止服务雪崩?是否用过熔断(Hystrix/Sentinel)、限流或降级?
  • 如何通过Spring Cloud实现服务熔断和降级?
  • 服务重试机制如何设计?如何避免幂等性问题?
  • 如何保证跨服务的数据一致性?是否使用过Saga模式?
  • 如何管理微服务的配置?是否用过Spring Cloud Config或Apollo?
  • 如何实现全链路监控?是否集成过SkyWalking、Zipkin或Prometheus?
  • 日志分散在多服务中,如何快速定位问题?是否用ELK统一收集?
  • 如何实现微服务间的安全认证?是否用过OAuth2、JWT或网关鉴权?
  • 如何防止接口被恶意调用?是否设计过黑白名单或限流规则?
  • 如何部署微服务?是否容器化(Docker/K8s)?
  • 如何实现CI/CD(如Jenkins/GitLab CI)?是否制定过灰度发布策略?
  • 服务发现与负载均衡的实现(如Nacos、Ribbon)?
  • 如何设计API网关(路由、鉴权、限流)?

高并发与分布式

  • 如果让你设计一个秒杀系统,你会如何设计?
  • 分布式系统中,如何实现全局唯一ID生成(如雪花算法)?
  • 设计OMS系统的库存管理接口时,如何保证数据一致性(如扣减库存的并发问题)?
  • 如何设计一个支持每秒10万订单的电商系统?需要考虑哪些关键点?
  • 大促期间系统扛不住流量,你会如何快速扩容?是否使用过弹性伸缩(如Kubernetes HPA)?
  • 如何避免高并发场景下的库存超卖问题?
  • 你提到“系统压测调优”,在Linux环境下如何模拟高并发场景(如使用ab、JMeter)?
  • 如何定位分布式系统的性能瓶颈?是否用过APM工具(如SkyWalking)?
  • 如何优化JVM以支持高并发?G1垃圾回收器如何配置?
  • 分布式链路追踪的原理是什么?如何实现全链路压测?
  • 实际项目中更常用Seata这类分布式事务框架。
  • CAP理论中如何权衡一致性与可用性?你的项目更倾向哪一点?
  • 如何实现分布式事务?是否用过Seata、TCC或消息队列最终一致性?
  • 缓存与数据库双写不一致如何解决?
  • CAP理论是什么?在分布式事务中如何权衡一致性和可用性?
  • 什么是BASE理论?最终一致性如何实现?
  • 你的项目中哪些场景必须使用分布式事务?为什么?
  • 两阶段提交(2PC)和TCC的区别是什么?各有哪些优缺点?
  • 是否使用过基于消息队列的最终一致性方案?如何保证消息可靠投递?
  • 为什么说2PC不适合高并发场景?
  • 分布式事务执行过程中,如何应对网络抖动或节点宕机?
  • 如果Confirm/Cancel阶段失败,如何设计重试和兜底策略?
  • 如何处理分布式事务中的悬挂问题(如Try超时后Cancel误触发)?
  • 是否使用过Seata?它的AT模式与TCC模式有何区别?
  • RocketMQ的事务消息是如何工作的?如何避免消息丢失?
  • 如何通过本地消息表实现最终一致性?
  • 分布式事务如何避免成为系统性能瓶颈?
  • 在高并发场景下,如何减少事务冲突(如库存扣减的锁竞争)?
  • 如果让你设计一个分布式事务框架,你会考虑哪些核心模块?
  • 在跨系统事务中(如对接第三方支付),如何保证数据一致性?
  • 熔断机制(Hystrix)、流量控制(Sentinel)

项目经验

  • 请简要介绍你负责过的最复杂/最具挑战性的项目(如OMS系统重构)。
  • 你在项目中遇到的最大技术挑战是什么?如何解决的?
  • 项目上线后是否收到用户反馈?如何持续改进系统?
  • 如果重新做这个项目,你会在哪些方面改进?
  • 项目中有哪些遗憾或未达预期的地方?
  • 如果让你从零设计一个OMS系统,你会如何规划技术架构?
  • 你如何平衡技术创新(如引入新技术)与项目稳定性?
  • 你在项目中担任什么角色(技术经理/核心开发)?如何分配任务和协调团队?
  • 在跨团队协作中(如产品、测试、运维),如何确保需求理解的准确性?
  • 如果团队成员对技术方案有分歧(如选型争议),你会如何推动决策?
  • 你的工作对项目成功上线有哪些直接贡献?是否有量化数据?
  • OMS和OFS的区别是什么?两者如何协同工作?
  • 你提到重构库存计算逻辑,旧架构的痛点是什么?新方案如何解决?
  • 对接多个电商平台时,如何设计通用接口?遇到过哪些兼容性问题?
  • 完美日记“双11”项目中的最大挑战是什么?如何保障系统零故障?
  • 订单履约链路中,如何实现物流状态实时同步?
  • 促销规则引擎的设计思路?如何支持复杂的营销活动?
  • 线程池参数如何配置(核心线程数、队列类型)?依据是什么?
  • 库存回传效率提升的具体技术手段(异步化、批量处理)?
  • 如何监控系统稳定性?用了哪些指标(QPS、延迟、错误率)?
  • OMS系统在供应链中的核心价值是什么?
  • 如何通过技术手段提升供应链的“可视化”和“灵活性”?
  • 未来供应链系统的发展趋势(如AI、自动化)?你的看法?
  • 服务花西子、完美日记等客户时,他们的业务需求有何特殊性?
  • 电商大促场景下,供应链系统与其他系统(如ERP、WMS)如何联动?
  • 大促期间系统如何保证每分钟处理3万单?具体用了哪些技术手段?
  • 库存超卖问题如何解决?
  • 库存计算效率提升30%的具体优化措施(数据结构、缓存策略等)?
  • 简历中提到“大促期间每分钟处理3万单”,你们是如何保证系统稳定性的?具体用了哪些技术手段(如缓存、线程池、限流等)?
  • 库存计算效率优化中,你重构了数据结构和计算方式,能否详细说明具体改动和效果?
  • 系统压测调优时,遇到过哪些典型问题?如何解决的?
  • 你提到“结合各项目需求改进产品业务设计”,能否举例说明你如何平衡客户需求与产品通用性?
  • 在OMS系统中,你是如何进行核心功能(如库存管理、调拨)设计的?遇到过哪些挑战?
  • 在OMS系统的重构中,你提到“业务处理速度提升超过50%”,具体优化了哪些模块?
  • 对接多个电商平台(如淘宝、京东、抖音)时,如何统一接口设计?遇到过哪些兼容性问题?
  • 你在供应链领域的积累主要集中在哪些方面?OMS系统如何帮助企业提升效率?
  • 能否举例说明你为企业提供的供应链解决方案?
  • 你负责的模块中最大的技术挑战是什么?如何解决的?
  • 是否有重构经历?举例说明重构前后的优化点?

团队管理

  • 你如何搭建一支高效的技术团队?选拔成员时最看重哪些能力?
  • 如何处理团队成员之间的冲突?能否举例说明?
  • 如何确保技术团队按时交付项目?是否使用过敏捷开发(如Scrum)?
  • 如果项目进度严重滞后,你会采取哪些措施?请举例说明。
  • 如何管理技术债务?是否定期安排重构或技术迭代?
  • 作为技术经理,如何推动技术选型(如框架升级、架构调整)?
  • 是否遇到过技术方案被团队质疑的情况?如何应对?
  • 如何平衡技术探索与业务需求的关系?
  • 你的管理风格是更偏向“授权”还是“事必躬亲”?为什么?
  • 如何塑造团队的技术文化?是否推行过代码规范或工程实践?
  • 是否经历过团队核心成员离职?如何应对后续影响?
  • 高压环境下(如系统故障、客户投诉),如何稳定团队情绪并快速解决问题?
  • 如何避免团队因长期加班导致的 burnout(职业倦怠)?
  • 如何用Git管理多人协作的代码冲突?
  • 作为技术经理,如何分配任务并确保项目按时交付?
  • 团队成员技术水平参差不齐,如何制定培训计划?
  • 如何推动代码评审规范?遇到过团队成员抵触的情况吗?
  • 如何与产品经理沟通需求优先级冲突?
  • 在驻场开发中,如何快速理解客户需求并落地?
  • 客户紧急需求与系统稳定性冲突时,如何权衡?
  • 举例说明你如何解决团队内部的技术争议(如技术选型分歧)?
  • 项目延期时,如何调整计划并向上级汇报?
  • 作为技术经理,你是如何分配任务的?如何确保团队成员的技术成长?
  • 在代码评审和技术培训中,你遇到过哪些典型问题?如何推动团队规范落地?
  • 如果项目进度严重滞后,你会采取哪些措施?能否举例说明你成功推动项目按时交付的经历?
  • 跨部门协作时(如对接电商平台),如何确保需求理解的准确性?

JVM与性能调优

  • 简历中提到“业务处理速度提升超过50%”,具体通过哪些JVM调优手段实现?
  • 在重构库存模块时,是否遇到内存或GC问题?如何解决的?
  • 如何设计一个高吞吐、低延迟的JVM参数模板?
  • 你提到熟悉JVM调优,实际项目中如何分析内存泄漏或Full GC问题?
  • 如何解决频繁的Young GC问题?
  • 如何监控JVM的实时状态?是否用过jstat、Arthas或VisualVM?
  • 如何通过命令行工具快速定位CPU占用过高的问题?
  • 什么是JIT编译优化?如何通过-XX:+PrintCompilation观察编译过程?
  • 如何分析Java应用的内存泄漏问题?是否用过jstack、jmap或Arthas?
  • 如何优化JVM参数以支持高并发场景(如大促每分钟处理3万单)?
  • 线程池配置不合理会导致哪些JVM问题?如何避免?
  • 如何通过JVM调优减少高并发下的锁竞争(如偏向锁、锁消除)?
  • JVM内存分为哪些区域?堆和栈的区别是什么?
  • 常见的垃圾回收算法有哪些?CMS、G1、ZGC的区别和适用场景是什么?
  • 什么是STW(Stop-The-World)?如何减少GC停顿时间?
  • 频繁Full GC可能是什么原因导致的?如何优化?
  • 如何分析GC日志?能否举例说明?
  • 什么是垃圾回收机制?常见的垃圾回收器有哪些(如CMS、G1)?
  • JVM内存区域划分(堆、栈、方法区)及垃圾回收机制?
  • 什么情况下会触发Full GC?如何排查内存泄漏?
  • 双亲委派模型的作用及如何打破它(如Tomcat的类加载器)?
  • 如何通过jstack、jmap、VisualVM分析性能问题?
  • 你如何优化高并发场景下的Java应用(如减少锁竞争、缓存策略)?

接口协议

  • 如何优化接口的响应时间?是否使用过缓存(如Redis)或异步处理?
  • 在高并发场景下(如大促每分钟处理3万单),如何保障接口的稳定性?是否做过限流或降级?
  • 是否遇到过接口超时问题?如何排查和解决?
  • 如何保证接口的安全性?是否使用过OAuth2、JWT或签名机制?
  • 如何防止接口被重放攻击或数据篡改?能否举例说明签名算法的实现?
  • 在对接第三方平台(如淘宝、京东)时,对方接口的认证流程是怎样的?
  • 如何管理API的版本迭代?是否支持多版本兼容?
  • 如果接口升级导致旧版客户端无法使用,如何避免业务中断?
  • 如何设计合理的错误码体系?能否举例说明?
  • 接口调用失败时,如何实现自动重试机制?需要注意哪些问题(如幂等性)?
  • 如何通过日志快速定位接口问题?是否使用过链路追踪工具(如SkyWalking)?
  • 如果让你设计一个秒杀系统的下单接口,你会考虑哪些关键点?
  • 如何评估一个接口设计的优劣?举例说明你优化过的接口案例。
  • 是否遇到过HTTPS证书导致的接口调用失败?如何排查?
  • http返回码 404/502/504
  • HTTP和HTTPS的核心区别是什么?为什么HTTPS更安全?
  • HTTPS的加密过程是如何实现的?SSL/TLS协议的作用是什么?
  • 为什么现代网站普遍要求使用HTTPS?
  • 详细描述HTTPS的TLS握手流程(如单向认证、双向认证)。
  • 什么是证书链?如何验证证书的有效性?
  • 如果服务器证书过期或不受信任,客户端会如何处理?
  • HTTPS比HTTP慢吗?如何优化HTTPS的性能?
  • 是否使用过HTTP/2或HTTP/3?它们如何提升性能?
  • 如何减少SSL/TLS握手带来的延迟(如会话复用、OCSP Stapling)?
  • 你在简历中提到对接多个电商平台,是否涉及HTTPS的跨域问题(CORS)?如何解决?
  • 在重构库存模块时,如何保证HTTPS接口的兼容性(如混合HTTP/HTTPS内容)?
  • HTTP、TCP、UDP分别属于哪一层?它们的关系是什么?
  • TCP和UDP的主要区别是什么?各自适用于哪些场景?
  • HTTP协议是基于TCP还是UDP?为什么这样设计?
  • 解释TCP三次握手和四次挥手的过程,为什么需要三次握手?
  • HTTP/1.1和HTTP/2的主要区别是什么?HTTP/3为什么改用UDP?
  • 如何优化HTTP接口的响应速度?是否使用过缓存、压缩或CDN?
  • 什么是HTTP长连接(Keep-Alive)?如何配置?
  • 实时音视频传输为什么选择UDP?如何解决丢包问题?

linux

  • 问:如果线上服务器CPU使用率突然飙升至100%,你会如何排查?
  • 问:服务器突然无法访问,如何快速定位是网络问题还是应用问题?
  • 熟悉Linux资源限制
  • 问:是否有编写Shell脚本的经验?能否举例一个自动化运维的案例?
  • 问:如何定时清理服务器日志文件(如使用cron任务)?
  • 问:如何快速定位日志文件中的错误信息
  • 问:如何通过命令行查看Java进程的CPU和内存占用?
  • 问:如何在Linux服务器上部署Java应用?是否使用过Tomcat或Spring Boot内嵌容器?

docker

  • 问:是否使用过Docker部署Java应用?如何通过Docker Compose管理多容器服务?
  • 问:在分布式系统中,如何批量管理多台服务器的配置(如Ansible、Kubernetes)?
  • 如何将容器的端口映射到宿主机?
  • Docker容器的数据如何持久化?数据卷(Volume)和绑定挂载(Bind Mount)的区别?
  • 如何备份和恢复Docker数据卷?
  • Docker Compose的作用是什么?如何编写一个docker-compose.yml文件?
  • 如何定义服务间的依赖关系?
  • 如何以非root用户运行容器?
  • 如何限制容器的CPU和内存使用?
  • 如何在生产环境中实现零停机部署?
  • 容器启动失败如何排查?如何查看容器日志?
  • 如何进入运行中的容器执行命令?

设计模式

  • 你在项目中用过哪些设计模式?举例说明单例模式的双重校验锁实现。
  • 如何通过工厂模式解耦对象创建过程?
  • 设计模式分为哪三类?每类的核心作用是什么?
  • 什么是设计模式的六大原则(SOLID)?举例说明单一职责原则。
  • 手写单例模式的双重校验锁实现,并解释为何需要volatile关键字。
  • 工厂模式和抽象工厂模式的区别是什么?如何选择?
  • 代理模式的应用场景是什么?静态代理和动态代理(如JDK/CGLib)如何实现?
  • 适配器模式和装饰器模式的区别?
  • 观察者模式如何实现?在项目中哪些场景适用?
  • 策略模式与状态模式的区别?
  • 模板方法模式和策略模式分别适合什么场景?
  • 何时应该使用组合模式而非继承?
  • 在简历提到的OMS系统中,你使用了哪些设计模式?解决了什么问题?
  • 如何通过设计模式优化代码的可维护性和扩展性?
  • 如何避免过度设计?何时应该引入设计模式?
  • 设计模式是否适用于所有项目?举例说明何时不需要设计模式。
  • 单例模式的DCL(双重检查锁)实现及为何要加volatile?
  • 如何用观察者模式解耦系统模块?

redis

  • 如果让你设计一个支持千万级用户的点赞系统,如何用Redis实现?
  • 提到“系统缓存的有效利用”,能否举例说明你如何设计缓存策略(如Redis的使用场景、缓存穿透/雪崩的解决方案)?

es引擎(ElasticSearch)

  • Elasticsearch的倒排索引是什么?相比传统数据库的B树索引有何优势?
  • 解释分片(Shard)和副本(Replica)的作用,如何合理设置分片数?
  • Elasticsearch的写入流程是怎样的?如何优化写入性能?
  • 什么是refresh_interval和flush操作?对性能有何影响?
  • 如何优化复杂聚合查询的性能?
  • 解释keyword和text类型的区别,如何避免全文检索时的分词问题?
  • 如何监控Elasticsearch集群的健康状态?常见的状态(Green/Yellow/Red)表示什么?
  • 什么是脑裂问题(Split Brain)?如何避免?
  • 如何排查Elasticsearch的慢查询?
  • 什么是热点分片(Hot Shard)?如何解决?
  • 在简历提到的OMS系统中,如何利用Elasticsearch优化搜索功能?
  • 是否遇到过数据同步延迟问题?如何解决?
  • 如何通过Elasticsearch实现近实时(NRT)搜索?
  • 是否使用过Elastic Stack(如Kibana、Beats)?

个人学习与规划

  • 为什么从开发转向技术管理?两者的能力要求差异是什么?
  • 未来3-5年的职业规划?是否考虑深耕供应链领域?
  • 举一个你主动学习新技术并成功应用的例子。
  • 描述一次项目失败经历,你从中学到了什么?
  • 工作中遇到最大的压力是什么?如何应对?
  • 你的本科专业是金融学,为何选择转向Java开发?如何弥补技术领域的知识缺口?
  • 你未来的职业规划是什么?希望深耕技术还是转向管理?
  • 为何从“软件工程师”转型为“技术经理”?你如何看待技术与管理的关系?
  • 你还有什么问题想问我们?
  • 如果入职,你计划如何快速融入团队并贡献价值

开放性问题

  • 设计一个秒杀系统(限流、降级、库存扣减)?
  • 如何实现分布式ID生成(Snowflake算法、Leaf)?

算法

  • 手写快速排序/归并排序,分析时间复杂度?
  • 二叉树层序遍历(队列实现)及递归的应用场景?
  • 海量数据中找出前K个高频元素(堆排序 vs. 快排分区优化)?
  • 判断链表是否有环(快慢指针)及数学证明?

红色文字

  • 符号表示:::
  • 符号说明:双冒号为方法引用运算符,而它所在的表达式被称为方法引用
  • 应用场景:如果 Lambda 所要实现的方案,已经有其他方法存在相同方案,那么则可以使用方法引用

方法引用的格式

  • 符号表示:::
  • 符号说明:双冒号为方法引用运算符,而它所在的表达式被称为方法引用
  • 应用场景:如果 Lambda 所要实现的方案,已经有其他方法存在相同方案,那么则可以使用方法引用

页脚:版权前显示的信息