JavaEE(JVM、多线程、网络编程)核心知识点全梳理
# JavaEE初阶核心知识点全梳理面试复习版 本文基于《Java后端极速唤醒计划》的Day 1-2内容结合多份PDF学习资料系统整理了JavaEE初阶必须掌握的**JVM、多线程、网络编程、HTTP/HTTPS**四大核心模块。目标读者是“学过但遗忘了”的复习者每个知识点都配有**面试高频考点**和**一句话记忆口诀**。---## 一、计算机基础与JVM### 1.1 计算机工作基础**冯诺依曼体系结构**是现代计算机的基石| 组件 | 功能 || :--- | :--- || CPU中央处理器 | 进行算术运算和逻辑判断 || 存储器 | 分为外存和内存用二进制存储数据 || 输入设备 | 用户给计算机发号施令 || 输出设备 | 计算机向用户汇报结果 |**存储速度与容量关系**面试常考- 容量硬盘 内存 CPU缓存- 速度CPU缓存 内存 硬盘### 1.2 JVM内存结构高频考点⭐⭐⭐⭐⭐JVM运行时数据区分为**线程共享**和**线程私有**两类| 区域 | 线程共享 | 存储内容 | 异常 || :--- | :--- | :--- | :--- || **堆Heap** | ✅ 是 | 所有对象实例、数组、字符串常量池 | OutOfMemoryError || **元空间Metaspace** | ✅ 是 | 类元数据、静态变量 | OutOfMemoryError || **虚拟机栈Stack** | ❌ 否 | 局部变量表、操作数栈、方法出口 | StackOverflowError || **本地方法栈** | ❌ 否 | native方法调用 | StackOverflowError || **程序计数器PC** | ❌ 否 | 当前执行字节码的行号 | 无 | **面试话术**“堆和元空间是线程共享的栈和PC是线程私有的。对象存在堆里局部变量存在栈里。”### 1.3 垃圾回收GC机制**可达性分析算法**从GC Roots出发不可达的对象被标记为可回收。**GC Roots包括**- 虚拟机栈栈帧局部变量引用的对象- 静态变量static引用的对象- 活跃的线程Thread- JNI引用**分代收集**- **年轻代**复制算法Eden S0 S1比例8:1:1- **老年代**标记-整理/标记-清除算法**引用类型对比**| 类型 | 回收时机 | 典型应用 || :--- | :--- | :--- || 强引用 | 永不回收OOM也不回收 | 普通对象 || 软引用 | 内存不足时回收 | 内存敏感缓存 || 弱引用 | 下次GC一定回收 | ThreadLocal || 虚引用 | 随时回收 | 跟踪对象回收状态 | **记忆口诀**“强死不收软满才收弱遇则收虚不拿收。”---## 二、多线程编程面试重灾区⭐⭐⭐⭐⭐### 2.1 进程与线程的区别| 维度 | 进程 | 线程 || :--- | :--- | :--- || 资源分配 | 系统分配资源的最小单位 | 系统调度的最小单位 || 内存 | 进程间不共享内存 | 同一进程的线程共享内存 || 创建开销 | 大 | 小比进程轻量 || 健壮性 | 一个进程挂了不影响其他进程 | 一个线程挂了可能带走整个进程 |### 2.2 线程的创建方式java// 方法1继承Thread类class MyThread extends Thread {public void run() { System.out.println(线程执行); }}new MyThread().start();// 方法2实现Runnable接口class MyRunnable implements Runnable {public void run() { System.out.println(线程执行); }}new Thread(new MyRunnable()).start();// 方法3Lambda表达式最简洁new Thread(() - System.out.println(线程执行)).start();### 2.3 线程的六大状态高频必问| 状态 | 含义 || :--- | :--- || **NEW** | 线程创建尚未调用start() || **RUNNABLE** | 可运行正在运行/等待CPU调度 || **BLOCKED** | 阻塞等待获取锁synchronized || **WAITING** | 无限等待wait()不带超时 || **TIMED_WAITING** | 有限等待sleep()/wait(超时) || **TERMINATED** | 线程执行完毕 |**状态转移关键点**- BLOCKED等待获取锁- WAITING等待其他线程唤醒notify- TIMED_WAITING等待超时或被唤醒 **记忆口诀**“NEW完start变RUNRUN要等锁变BLOCKwait一下进WAITINGsleep一下TIMEDrun完最后TERMINATED。”### 2.4 线程安全与synchronized**线程不安全的三大原因**1. 线程调度是抢占式的随机2. 多个线程修改共享数据3. 操作不是原子的如 i 包含读-改-写三步**synchronized特性**- **互斥**同一把锁一个线程持有其他线程阻塞- **可重入**同一线程可多次获取同一把锁不会死锁**synchronized使用方式**java// 1. 修饰代码块锁指定对象synchronized (locker) { count; }// 2. 修饰普通方法锁当前对象thispublic synchronized void method() { }// 3. 修饰静态方法锁类的Class对象public synchronized static void method() { }**线程安全类对比**| 线程不安全 | 线程安全不建议用 | 线程安全推荐 || :--- | :--- | :--- || ArrayList | Vector | CopyOnWriteArrayList || HashMap | Hashtable | ConcurrentHashMap || StringBuilder | StringBuffer | — | **注意**String是不可变类本身线程安全。### 2.5 volatile关键字**作用**保证**内存可见性**禁止指令重排序。**原理**强制读写主内存不使用CPU缓存工作内存。**注意**volatile **不保证原子性**volatile int count; count 仍然不安全。 **面试金句**“volatile解决可见性synchronized解决原子性可见性。两者分工不同。”### 2.6 wait()和notify()**核心规则**- wait() 释放锁进入等待状态- notify() 唤醒一个等待线程- notifyAll() 唤醒所有等待线程- **必须**在 synchronized 代码块中调用javasynchronized (locker) {locker.wait(); // 等待唤醒locker.notify(); // 唤醒一个}### 2.7 死锁面试杀手题**死锁的四个必要条件**必须全部满足1. **互斥使用**资源被一个线程占用时其他不能使用2. **不可抢占**资源只能由占有者主动释放3. **请求和保持**占有一个资源的同时请求另一个4. **循环等待**线程间形成等待环路**破坏方法**最容易破坏的是**循环等待**——采用**锁排序**所有线程按固定顺序获取锁。### 2.8 线程池ThreadPoolExecutor**七大核心参数**面试必须背出| 参数 | 含义 || :--- | :--- || corePoolSize | 核心线程数正式员工 || maximumPoolSize | 最大线程数正式临时 || keepAliveTime | 临时工空闲存活时间 || unit | 时间单位 || workQueue | 阻塞队列存储任务 || threadFactory | 线程工厂 || handler | 拒绝策略 |**任务提交流程**1. 核心线程未满 → 创建核心线程执行2. 核心线程已满 → 任务入队列3. 队列已满 → 创建临时线程执行4. 线程数达最大 → 执行拒绝策略**拒绝策略**- AbortPolicy抛异常默认- CallerRunsPolicy调用者自己执行- DiscardOldestPolicy丢弃最老任务- DiscardPolicy丢弃新任务---## 三、网络编程基础### 3.1 网络分层模型**TCP/IP五层模型**| 层级 | 核心协议 | 设备 || :--- | :--- | :--- || 应用层 | HTTP、HTTPS、DNS | — || 传输层 | TCP、UDP | — || 网络层 | IP、ICMP | 路由器 || 数据链路层 | 以太网 | 交换机 || 物理层 | 网线、光纤 | 集线器 |### 3.2 TCP三次握手建立连接客户端 服务端| SYN (Seqx) ||------------------|| SYNACK (Seqy, Ackx1) ||------------------|| ACK (Acky1) ||------------------|| 连接建立 |**为什么三次** 防止过期的SYN请求建立错误连接确保双方都具备收发能力。### 3.3 TCP四次挥手释放连接**TIME_WAIT状态**高频面试- 持续2MSL约60秒- 作用确保最后一个ACK被收到让网络中残留数据消失- **隐患**大量短连接会导致TIME_WAIT积压耗尽端口号**解决方案**使用连接池复用连接。### 3.4 TCP vs UDP对比| 维度 | TCP | UDP || :--- | :--- | :--- || 连接 | 有连接 | 无连接 || 可靠性 | 可靠传输确认重传 | 不可靠 || 传输方式 | 面向字节流 | 面向数据报最大64K || 效率 | 较低 | 较高 || 场景 | 文件传输、HTTP | 视频通话、DNS | **面试题**“如何用UDP实现可靠传输”——在应用层引入序列号、确认应答、超时重传机制参考TCP的设计。---## 四、HTTP/HTTPS协议后端开发必备### 4.1 HTTP请求格式请求行GET /api/user/1 HTTP/1.1请求头Host: example.comAuthorization: Bearer eyJhbGciOi...Content-Type: application/json空行请求体{name: 张三}### 4.2 HTTP响应格式响应行HTTP/1.1 200 OK响应头Content-Type: text/htmlContent-Length: 1234空行响应体html.../html

相关新闻

???????????-145928

???????????-145928

做无人机接单需要多少钱,结论是:找任务或发布需求本身未必收费,真正要预算的是项目执行费。以飞飞手册这类无人机接单平台为例,若其公开页面显示飞手、企业可免费入驻和沟通,应先截图留存并在下单前复核;航…

2026/7/29 1:46:12阅读更多 →
振动马达驱动仿生机器人制作:从非对称振动原理到虫虫机器人实践

振动马达驱动仿生机器人制作:从非对称振动原理到虫虫机器人实践

1. 项目概述:一场关于“虫虫机器人”的动手创造之旅上周六,我在北京创客空间主持了一场名为“虫虫机器人工作坊”的活动。这听起来可能有点孩子气,但实际参与下来的朋友,无论是刚入门的新手,还是有一定电子基础的爱好者…

2026/7/29 1:46:12阅读更多 →
哈密尔顿环问题:从NP难到C++回溯法实现与优化

哈密尔顿环问题:从NP难到C++回溯法实现与优化

1. 项目概述:从图论难题到代码实现哈密尔顿环问题,一个在图论和算法领域里既经典又迷人的存在。我第一次接触它,还是在大学的数据结构课上,当时就被它“看似简单,实则NP难”的特性给吸引住了。简单来说,在一…

2026/7/29 1:44:12阅读更多 →
ChatGPT Voice技术解析:语音交互如何重构新型计算机架构

ChatGPT Voice技术解析:语音交互如何重构新型计算机架构

最近,如果你关注 AI 领域,可能会注意到一个现象:各大科技媒体都在讨论 ChatGPT Voice 的潜力,但很少有人真正说清楚,为什么这个看似简单的语音交互功能,会引发像 Sam Altman 这样的行业领袖提出“新型计算机…

2026/7/29 2:48:22阅读更多 →
MyBatis实战指南:从核心配置、动态SQL到生产环境优化与安全加固

MyBatis实战指南:从核心配置、动态SQL到生产环境优化与安全加固

1. 从JDBC到MyBatis:一个持久层框架的“降维打击”如果你是从JDBC时代过来的开发者,或者刚入门就被各种Connection、PreparedStatement、ResultSet的样板代码折磨过,那你一定能瞬间理解MyBatis的价值。它不是什么高深莫测的黑科技&#xff0c…

2026/7/29 2:48:22阅读更多 →
万圣节手工牛角帽制作全攻略:从设计到装饰的亲子DIY指南

万圣节手工牛角帽制作全攻略:从设计到装饰的亲子DIY指南

1. 项目概述:从“不给糖就捣蛋”到“动手更有趣”又快到万圣节了,街上、派对上,各种南瓜灯、幽灵和女巫的装饰开始涌现。但说实话,那些从网上或商店里买来的现成装扮,总感觉少了点灵魂,撞衫率也高得惊人。去…

2026/7/29 2:48:22阅读更多 →
导电墨水笔电路制作:从原理到实践,手绘电子原型全解析

导电墨水笔电路制作:从原理到实践,手绘电子原型全解析

1. 项目概述:当电路从“连接”变成“绘画”几年前,我第一次在创客展上看到有人用一支笔在纸上画了几条线,然后点亮了一个LED,那种感觉就像第一次看到魔术。传统的电路制作,无论是面包板插接还是PCB蚀刻,都离…

2026/7/29 2:48:22阅读更多 →
LS-DYNA显式动力学分析中负体积错误诊断与系统性解决方案

LS-DYNA显式动力学分析中负体积错误诊断与系统性解决方案

1. 项目概述:当仿真计算突然“卡壳”在工程仿真领域,尤其是使用LS-DYNA进行显式动力学分析时,没有什么比看到计算突然中断,并弹出一个“Negative Volume”错误更让人头疼的了。这就像你正在高速公路上平稳驾驶,突然引擎…

2026/7/29 2:48:22阅读更多 →
AI学术写作工具:六维提升研究效率与质量

AI学术写作工具:六维提升研究效率与质量

1. 项目概述:AI如何重塑学术写作体验去年指导本科生论文时,我发现一个有趣现象:90%的学生把80%时间花在格式调整、文献引用和语言润色上,真正用于思考研究问题的时间不足20%。这种现象催生了"书匠策AI"的雏形——一个专…

2026/7/29 2:46:22阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“! 在构建复杂的 Agent 系统时,我们经常会遇到这样的场景:Agent 正在执行一个多步骤的任务,比如“下单购买商品”,但执行到一半时,我们…

2026/7/29 0:01:46阅读更多 →
自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

近日,国际专注开放式技术研发的声学品牌Nank南卡,正式官宣实力艺人曾舜晞担任品牌代言人。消息一经发出便轰动全网。为什么耳机品牌不选择流量明星、老牌歌手?而且是选择曾舜晞?让我们一起来探索一下!比起短期的流量&a…

2026/7/29 0:01:46阅读更多 →
【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:01:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →