一、Java 基础与集合
1. ArrayList 和 LinkedList 的区别?
ArrayList 底层是数组,查询快,增删慢;适合查多改少。
LinkedList 底层是双向链表,增删快,查询慢;适合频繁插入删除。
2. HashMap 的底层实现?
JDK8 以前:数组 + 链表。
JDK8 起:数组 + 链表 + 红黑树(链表长度 > 8 且数组长度 > 64 时转红黑树)。
3. String、StringBuilder、StringBuffer 区别?
String:不可变,线程安全,适合少量字符串拼接。
StringBuilder:可变,非线程安全,单线程下效率高。
StringBuffer:可变,线程安全,适合多线程场景。
4. equals 和 == 的区别?
== 比较的是地址(引用是否相同)。
equals 比较的是内容(需重写 equals 方法)。
二、并发编程
5. synchronized 和 ReentrantLock 区别?
synchronized 是 JVM 实现,语法简洁;
ReentrantLock 是 Java 实现,功能更强,支持公平锁、可中断锁、超时锁。
6. volatile 关键字的作用?
保证变量在多线程间的可见性;禁止指令重排序(通过内存屏障);不保证原子性。
7. 线程池的核心参数?
corePoolSize:核心线程数;
maximumPoolSize:最大线程数;
keepAliveTime:空闲线程最大存活时间;
workQueue:任务队列;
rejectionHandler:拒绝策略。
三、JVM 与性能调优
8. JVM 内存模型有哪些区域?
程序计数器、虚拟机栈、本地方法栈、堆、方法区(JDK8 后为元空间)。
9. GC 的垃圾收集器有哪些?
Serial、ParNew、Parallel、CMS、G1、ZGC、Shenandoah。
10. Minor GC 和 Full GC 的区别?
Minor GC:新生代垃圾回收,频繁,耗时短;
Full GC:老年代 + 新生代,频率低,耗时长。
四、Spring & Spring Boot
11. Spring Bean 的生命周期?
实例化
设置属性
调用 BeanNameAware、BeanFactoryAware 等回调接口
初始化(@PostConstruct、InitializingBean)
使用中
销毁前调用(@PreDestroy、DisposableBean)
12. @Autowired 和 @Resource 区别?
@Autowired:按类型注入,需配合 @Qualifier;
@Resource:默认按名称注入。
13. Spring 事务的传播机制?
REQUIRED:默认,有就加入事务,无则新建。
REQUIRES_NEW:新建事务,原事务挂起。
NESTED:嵌套事务,支持回滚到 savepoint。
SUPPORTS、NOT_SUPPORTED、MANDATORY、NEVER:分别代表是否支持或必须事务。
14. Spring Boot 自动装配原理?
启动类 @SpringBootApplication -> @EnableAutoConfiguration -> SpringFactoriesLoader 加载 META-INF/spring.factories 中配置类。
五、MySQL
15. 索引的底层结构?
B+ 树结构:所有数据存储在叶子节点,非叶子节点仅存储索引键和指向子节点的指针。
叶子节点之间通过链表连接,便于范围查找。
16. 覆盖索引是什么?如何避免回表?
查询字段完全在索引列中,直接从索引获取数据而无需回表,提高查询效率。
SQL 查询时只选用索引包含的列,并观察 EXPLAIN 中 Extra 是否为 Using index。
17. 聚簇索引和非聚簇索引的区别?
聚簇索引(InnoDB 主键索引):数据行与索引存储在一起。
非聚簇索引(二级索引):索引存储的是主键值,通过主键再回表查询数据。
18. MySQL 锁机制?
表锁(MyISAM)
行锁(InnoDB):共享锁、排它锁
意向锁(辅助行锁加速)
间隙锁、临键锁(防止幻读)
19. MySQL 事务的四大特性(ACID)?
原子性(Atomicity):要么全部执行,要么回滚。
一致性(Consistency):事务前后数据一致。
隔离性(Isolation):多个事务互不干扰。
持久性(Durability):事务提交后永久保存。
20. 常见的隔离级别?
读未提交(Read Uncommitted):可能脏读
读已提交(Read Committed):解决脏读
可重复读(Repeatable Read,MySQL 默认):解决不可重复读
串行化(Serializable):最高隔离,性能低
21. 如何排查死锁?
使用 SHOW ENGINE INNODB STATUS 查看死锁信息。
分析死锁发生的 SQL 与表结构,优化索引与锁顺序。
六、Redis
22. Redis 支持哪些数据结构?
String、List、Set、Hash、ZSet、Bitmap、HyperLogLog、Geo。
23. Redis 缓存雪崩/穿透/击穿?
雪崩:大量 key 同时失效 → 加锁、均匀过期时间、预热
穿透:请求不存在 key → 布隆过滤器、缓存空值
击穿:热点 key 突然失效 → 加互斥锁、逻辑过期
24. 分布式锁实现?
setnx + expire 原子操作;Redisson 提供高可用实现
七、消息队列(Kafka / RabbitMQ)
25. Kafka 的消息机制?
Producer 将消息发送到 topic 下的 partition。
Consumer 按 group 消费,每个 partition 只能被 group 内一个 consumer 消费。
每条消息有 offset,消费顺序由 partition 保证。
26. Kafka 如何保证消息不丢失?
ACK 机制 + ISR 副本机制。
设置 acks=all,启用幂等 producer,添加 retries 保证重试。
可使用事务 API 实现 exactly-once。
27. RabbitMQ 的 Exchange 类型?
Direct:路由键精准匹配
Topic:模糊匹配(支持 * 和 #)
Fanout:广播全部绑定队列
Headers:根据 headers 属性匹配
28. RabbitMQ 与 Kafka 区别?
RabbitMQ 延迟低,支持消息确认机制,适合事务场景。
Kafka 吞吐高,适合日志采集、流处理等高并发场景。
八、分布式、微服务
29. 分库分表怎么做?
水平拆分:按业务字段 hash/取模/分片(如用户 ID、地区)
垂直拆分:按功能模块分库
使用 ShardingSphere、MyCat 实现自动路由
30. 雪花 ID 原理?
64 位整型 = 时间戳 + 数据中心 ID + 机器 ID + 自增序列
支持高并发下唯一性,避免数据库主键冲突
31. 微服务常见组件及作用?
注册中心:Nacos、Eureka(服务发现与注册)
配置中心:Nacos(动态配置)
网关:Spring Cloud Gateway(统一入口、鉴权、限流)
熔断限流:Sentinel、Hystrix(保护系统稳定性)
调用:Feign、OpenFeign(简化远程调用)
链路追踪:Sleuth + Zipkin / SkyWalking(排查性能瓶颈)
32. Spring Cloud 中 Nacos 的使用?
注册服务:@EnableDiscoveryClient,配置 spring.cloud.nacos.discovery
获取配置:@RefreshScope + @Value,配置 spring.cloud.nacos.config
九、常用中间件
33. Elasticsearch 在项目中的使用?
商品搜索、联想词、条件过滤、聚合分析、搜索推荐
借助 IK 分词器进行中文分词,结合 DSL 构建复杂查询
34. Flink 的作用与场景?
实时数据处理(CEP 模式识别、窗口计算)
医疗销售项目:用于实时打标签、交易链监控、日志清洗入库
说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。
Java真的没有发展吗
学习Java并非真的没有退路,相反,如果将Java与现在热门的大模型结合会碰撞出不一样的火花
大模型技术正在为Java开发者开辟新赛道
1、推理环节的核心语言
- 大模型训练依赖Python生态的高性能计算资源,但推理阶段更注重模型部署、性能优化和系统集成。Java凭借其稳定性、跨平台特性和生态优势,成为推理环节的理想选择。例如,通过DJL(Deep Java Library)直接加载和使用预训练模型,无需深入底层Python代码。
2、工程化落地的关键角色
- 大模型从实验室到产业级应用的过程中,工程化能力成为核心竞争力。Java开发者在代码规范、测试流程、版本管理等方面的积累,能大幅降低大模型项目的研发成本。例如,利用Spring Cloud Gateway实现大模型调用的网关,进行请求限流、熔断降级和日志追踪。
3、多场景应用的桥梁
- Java在大模型工程化中承担关键职责:
- 数据处理层:通过Apache PDFBox、Spring Batch等工具解析非结构化数据,实现知识库的向量化处理。
- 检索服务层:调用大模型的Embedding API生成向量数据,并通过向量数据库(如Milvus)进行相似度匹配。
- 模型调用层:通过适配器模式封装不同大模型的调用接口,实现“一键切换”。
应用服务层:基于Spring Boot构建RESTful API,灵活编排“检索-生成”链路。
因此捕获AI,掌握技术是关键,让AI成为我们最便利的工具.
一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!掌握AI能力的Java工程师比纯Java岗要吃香的多。
即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地!大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇!
如何学习AGI大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2025最新版优快云大礼包:《AGI大模型学习资源包》免费分享**
一、2025最新大模型学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场
L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程
L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践
L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署
L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

三、大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

四、大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

1775

被折叠的 条评论
为什么被折叠?



