JavaEE-核心知识
JavaEE 核心知识点复习笔记承接上篇 JavaSE这篇把 JavaEE 从前端基础、数据库、JDBC、反射注解到 SSM 全家桶、SpringBoot、微服务整条线串一遍面试复习速查专用。一、前端基础JavaWeb 必备1. 前端三件套 jQuery技术作用HTML构建网页结构和内容CSS控制网页样式和布局JavaScript实现网页动态交互效果jQuery封装了 JS 常用功能简化 DOM 操作2. Ajax 异步请求作用不刷新整个网页的情况下与服务器交换数据并局部更新页面内容。原生 Ajax 五步走// 1. 创建核心对象 var xhr new XMLHttpRequest(); // 2. 设置请求行请求方式、url、是否异步 xhr.open(GET/POST, url, true); // 3. 设置请求头POST 才需要 xhr.setRequestHeader(Content-type, application/x-www-form-urlencoded); // 4. 注册状态变化回调 xhr.onreadystatechange function() { if (xhr.readyState 4 xhr.status 200) { // 处理响应数据 console.log(xhr.responseText); } }; // 5. 发送请求 xhr.send(params);readyState 4表示请求完成status 200表示响应成功两个条件都满足才处理。二、服务器技术1. C/S 与 B/S 架构架构特点优点缺点C/S需要安装专用客户端体验好、性能高、功能丰富更新维护成本高、跨平台差B/S浏览器直接访问免安装升级方便、跨平台、部署简单体验受限、依赖网络2. 静态网页 vs 动态网页静态网页内容固定所有人看到的都一样.html/.htm后缀浏览器直接解析动态网页内容根据条件动态变化如登录后显示用户名需要服务器端程序处理Servlet/JSP 等3. Web 项目目录结构项目根目录WebContent / src/main/webapp ├── HTML/CSS/JS/JSP 等可直接访问的资源 └── WEB-INF受保护目录浏览器不能直接访问 ├── web.xml # Web 应用配置文件 ├── classes/ # 编译后的 .class 字节码 └── lib/ # 项目依赖的 jar 包⚠️重点WEB-INF下的资源外界访问不到必须通过服务器内部转发才能访问这也是安全设计。4. Tomcat 发布项目的四种方式直接把项目文件夹放到webapps目录下 → 自动部署打war包放到webapps→ Tomcat 自动解压部署在server.xml中配置Context指定项目路径在conf/Catalina/localhost下添加 xml 配置文件访问路径格式http://主机:端口/项目名/资源路径5. HTTP 协议无状态协议服务器不记录客户端状态每次请求都是独立的解决无状态的方案Session、Cookie、Token 等会话跟踪技术三、数据库技术1. SQL 四大分类分类全称作用关键字DDL数据定义语言定义库、表、列结构CREATE、DROP、ALTER、TRUNCATEDML数据操作语言操作表中记录INSERT、UPDATE、DELETEDQL数据查询语言查询数据SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY、LIMITDCL数据控制语言管理权限、事务GRANT、REVOKE、COMMIT、ROLLBACK2. 常用数据类型分类类型说明字符串CHAR定长字符串查询快但可能浪费空间VARCHAR变长字符串节省空间最常用TEXT大文本存长文章内容数值INT/BIGINT整数类型DECIMAL定点数精确计算存金额必须用它日期DATE日期 YYYY-MM-DDDATETIME日期时间范围大TIMESTAMP时间戳自动更新范围 1970-2038其他BLOB二进制大对象实际开发一般存路径不存文件3. 单表约束作用限制表中数据保证数据的正确性、有效性、完整性。约束作用特点主键约束 PRIMARY KEY唯一标识每行记录值唯一且不为空一张表只能一个主键常配合AUTO_INCREMENT自增唯一约束 UNIQUE该列值不能重复可以为 null非空约束 NOT NULL该列值不能为空—默认约束 DEFAULT设置默认值不赋值时用默认值外键约束 FOREIGN KEY建立两表关联保证数据一致性4. 多表外键约束外键从表中引用主表主键的列用来建立两表关联保证数据一致性。-- 语法 CONSTRAINT 外键名 FOREIGN KEY (从表外键列) REFERENCES 主表(主键列)级联操作ON UPDATE CASCADE主表主键更新时从表外键同步更新ON DELETE CASCADE主表记录删除时从表关联记录同步删除⚠️级联删除慎用一不小心可能删光整张关联表的数据生产环境一般用逻辑删除代替。5. 聚合函数函数作用COUNT(*)统计行数COUNT(列名)统计该列非空的数量SUM()求和AVG()求平均值MAX()/MIN()最大/最小值聚合函数常配合GROUP BY分组使用分组后筛选用HAVING。6. 多表查询内连接只显示两表中满足连接条件的交集数据。-- 隐式内连接 SELECT * FROM A, B WHERE A.id B.aid; -- 显式内连接推荐语义清晰 SELECT * FROM A INNER JOIN B ON A.id B.aid;外连接类型效果语法左外连接 LEFT JOIN显示左表全部 右表匹配的不匹配补 nullSELECT * FROM A LEFT JOIN B ON 条件右外连接 RIGHT JOIN显示右表全部 左表匹配的SELECT * FROM A RIGHT JOIN B ON 条件子查询查询里嵌套另一个查询内层结果作为外层的条件或数据源。单行单列结果是一个值 → 用 比较多行单列结果是集合 → 用IN、ANY、ALL多行多列结果是虚拟表 → 放在FROM后面继续查四、JavaEE 核心技术1. JDBCJava DataBase ConnectivityJava 操作数据库的标准接口。标准六步走// 1. 导入驱动 jar 包mysql-connector-java // 2. 注册驱动 Class.forName(com.mysql.cj.jdbc.Driver); // 3. 获取连接对象 Connection conn DriverManager.getConnection(url, username, password); // 4. 获取执行 SQL 的对象 Statement stmt conn.createStatement(); // 5. 执行 SQL ResultSet rs stmt.executeQuery(sql); // 查询返回结果集 int count stmt.executeUpdate(sql); // 增删改返回影响行数 // 6. 释放资源倒着关 rs.close(); stmt.close(); conn.close();SQL 注入问题原理用户输入的内容拼接到 SQL 里恶意输入特殊字符串改变 SQL 语义绕过验证。经典注入密码输入 or 11 拼接后WHERE password or 11 → 条件恒成立直接登录解决方案用PreparedStatement预编译对象代替Statement参数用?占位SQL 语义不会被篡改。2. XML可扩展标记语言标签都是自定义的。对比XMLHTML标签自定义预定义语法严格松散用途存数据、做配置展示数据主要用途配置文件老框架常用、数据传输现在 JSON 更主流。XML 约束规定 XML 里能写什么标签、什么结构DTD 约束简单.dtd文件Schema 约束功能强大支持数据类型校验.xsd文件五、反射与注解1. 反射机制定义程序在运行期间动态获取任意类的信息成员变量、方法、构造器并且可以操作对象的属性和方法。框架的底层核心就是反射。正常流程反射流程知道类名 → new 对象 → 调用方法编译期确定拿到 Class 对象 → 获取方法/属性 → 调用运行期动态确定核心思想把类的各个组成部分字段、方法、构造器封装成对象Field、Method、Constructor这就是反射。.class字节码文件加载到内存后JVM 会创建一个Class对象通过它可以反推类的所有信息。2. 代理模式给目标对象提供一个代理对象由代理控制对目标的访问在不修改源码的前提下增强功能。AOP 的底层就是动态代理。3. 注解AnnotationJava 5 引入的代码级元数据可以标在类、方法、字段上用来做配置说明。现在框架基本都用注解替代 XML 配置了。自定义注解public interface 注解名 { // 属性列表 String value() default ; }元注解修饰注解的注解元注解作用Target注解能作用的位置TYPE 类、METHOD 方法、FIELD 字段等Retention保留阶段SOURCE 源码 / CLASS 字节码 /RUNTIME 运行时反射读取必须 RUNTIMEDocumented是否生成到文档Inherited是否被子类继承 小技巧只有一个value属性时赋值可以省略value直接写值。六、主流框架1. MyBatis半 ORM 持久层框架支持定制化 SQL、存储过程和高级映射帮你省去几乎所有 JDBC 样板代码和手动参数封装。延迟加载懒加载用到关联数据时才去查不用不查提升性能。配置lazyLoadingEnabledtrue、aggressiveLazyLoadingfalse只能在嵌套查询select属性方式下使用缓存策略缓存级别范围特点一级缓存SqlSession 级别同一个 SqlSession 内相同查询缓存默认开启二级缓存SqlSessionFactory 级别跨 SqlSession 共享需要手动开启cache标签⚠️ 执行增删改、commit、close、clearCache都会清空缓存。而且缓存存的是对象引用修改对象会影响缓存数据。2. Spring 框架核心概述两大核心IOC控制反转、AOP面向切面编程一站式框架表现层 SpringMVC、持久层 JdbcTemplate、业务层事务管理各层都有解决方案优点低耦合、可扩展、声明式事务、方便集成各种框架IOC控制反转底层原理XML 配置 工厂模式 反射BeanFactory vs ApplicationContextBeanFactory顶层接口懒加载getBean时才创建对象ApplicationContext子接口功能更多启动时就创建所有单例 Bean开发常用Bean 作用域singleton单例默认prototype多例request/session/applicationWeb 环境IOC 常用注解分类注解作用创建对象Component/Controller/Service/Repository四个功能一样只是语义分层表现层/业务层/持久层注入数据Autowired按类型自动注入Spring 自带Qualifier配合 Autowired按名称注入Resource先按名称再按类型JavaEE 注解Value注入基本类型/String支持${}读配置作用域Scopesingleton / prototype生命周期PostConstruct初始化 /PreDestroy销毁纯注解开发Configuration配置类、ComponentScan包扫描、Bean、PropertySource、ImportAOP面向切面编程定义通过预编译和运行期动态代理在不修改源码的情况下给程序添加额外功能。典型应用日志、事务、权限校验。3. SpringMVCMVC 模式Model模型数据 View视图 Controller控制器分离。前端控制器模式DispatcherServlet统一接收所有请求再分发到具体的处理器。请求参数绑定注解作用RequestParam指定参数名、是否必填、默认值PathVariableRESTful 风格路径变量绑定RequestBody接收 JSON 请求体自动转对象RequestHeader获取请求头CookieValue获取 Cookie 值常用注解速查注解作用Controller标记控制器类RequestMapping请求路径映射类方法组合使用GetMapping/PostMapping/PutMapping/DeleteMappingREST 风格快捷注解ResponseBody返回值直接作为响应体不走视图返回 JSON 常用RestControllerController ResponseBody组合整个类都返回 JSONControllerAdvice全局异常处理、全局数据绑定ExceptionHandler异常处理方法RESTful 风格URL 定位资源HTTP 动词描述操作GET查询、POST新增、PUT修改、DELETE删除路径传参/user/100用PathVariable获取前后端分离后端只返回 JSON前端负责渲染文件上传表单enctypemultipart/form-datamethodpost配置CommonsMultipartResolverid 必须是multipartResolverController 用MultipartFile接收transferTo()保存到磁盘4. SpringBoot核心特点起步依赖starter→ 不用自己凑 jar 包自动配置 → 很多配置默认就给你配好了内嵌容器 → 直接打 jar 包运行不用装 Tomcat无需 XML → 零配置开发Actuator → 应用监控一句话总结SpringBoot 不是新框架是快速开发 Spring 的脚手架约定大于配置。5. MyBatis-PlusMPMyBatis 的增强工具单表 CRUD 零 SQL开发效率拉满。核心特性内置通用BaseMapper和通用 Service单表不用写 SQL条件构造器QueryWrapper、UpdateWrapper链式拼接条件分页插件、主键策略、逻辑删除、自动填充、乐观锁、代码生成器支持 Lambda 写法字段名用方法引用防止写错常用注解TableName、TableId、TableField、TableLogic6. Redis高性能键值对内存数据库也叫数据结构服务器。特点内存存储读写速度极快缓存首选支持丰富数据类型String、Hash、List、Set、SortedSetZSet持久化RDB 快照 AOF 日志防止宕机丢数据单线程 多路 IO 复用模型典型应用场景缓存热点数据、会话存储、分布式锁、排行榜、计数器、消息队列、限流7. Spring Cloud 微服务一句话把单体应用拆成多个独立微服务Spring Cloud 提供整套分布式解决方案。Spring Cloud Alibaba 核心组件组件作用替代/补充Nacos注册中心 配置中心二合一替代 Eureka ConfigSentinel流量控制、熔断降级替代 HystrixDubbo高性能 RPC 远程调用比 Feign 性能更强Seata分布式事务解决方案解决跨服务数据一致性Gateway微服务网关路由转发、鉴权、限流微服务核心能力速览服务注册发现Nacos所有服务启动时注册进去调用方动态查地址服务调用 负载均衡OpenFeign LoadBalancer微服务之间像调本地方法一样互相调用自动负载均衡配置中心Nacos Config配置集中管理动态刷新不用重启熔断降级Sentinel防止某个服务故障引发连锁雪崩超时快速返回兜底结果网关Gateway统一入口路由转发、鉴权、限流、跨域链路追踪Sleuth SkyWalking追踪整条请求链路定位慢请求和异常总结JavaEE 这条线从 Web 基础 → 数据库 → JDBC → 反射注解 → SSM → SpringBoot → 微服务是层层递进的。面试重点抓 MyBatis 缓存、Spring IOC/AOP、SpringMVC 流程、Redis 数据结构和应用场景、微服务各组件作用这几块基本能覆盖大部分问题。

相关新闻

基于AI的爆款结构迁移引擎 多版本生成与 SVT 导出

基于AI的爆款结构迁移引擎 多版本生成与 SVT 导出

04 — 多版本生成与 SVT 导出1. 功能定义与核心意义功能定义多版本生成与 SVT 导出是「爆款结构迁移引擎」的第四步,也是工作流的最终产出环节。系统将爆款结构模板和素材缺口分析结果注入 LLM prompt,为指定目标主题生成符合 SVT-JSON 标准格式的视频时…

2026/7/26 8:51:02阅读更多 →
T-SQL 变量赋值、全局变量、流程控制+T-SQL WHILE循环、表创建与数据修改+T-SQL 视图(View)

T-SQL 变量赋值、全局变量、流程控制+T-SQL WHILE循环、表创建与数据修改+T-SQL 视图(View)

核心考点:局部变量与全局变量区别、SET与SELECT赋值差异、流程控制(IF-ELSE、CASE WHEN)、游标循环遍历数据、常用全局变量用法适配表结构:Students(StudentId, Name, Age, ClassId)、ScoreList(StudentId, Score, DB)--定义局部变…

2026/7/26 8:49:02阅读更多 →
Unity转UE5实战指南:从思维转换到核心功能迁移

Unity转UE5实战指南:从思维转换到核心功能迁移

1. 项目概述:从Unity到UE5的抉择与阵痛 最近在独立开发者圈子里,一个话题的热度居高不下:Unity引擎的收费政策调整,让不少中小团队和个人开发者感到“背刺”,进而开始严肃考虑转向虚幻引擎5(UE5&#xff09…

2026/7/26 8:49:02阅读更多 →
AI微服务工程化:从FastAPI封装到Docker容器化实战

AI微服务工程化:从FastAPI封装到Docker容器化实战

你刚接手一个AI项目,老板让你把几个大模型API调用封装成服务。第一版代码跑得挺好,但用户量一上来,服务开始频繁超时、内存泄漏、扩展困难。你意识到:单机脚本和可维护的微服务之间,隔着一整套工程化鸿沟。 这个问题太…

2026/7/26 9:55:11阅读更多 →
微信小程序提交踩坑复盘:index.lock Permission denied 的定位与修复

微信小程序提交踩坑复盘:index.lock Permission denied 的定位与修复

1. 引言在微信小程序开发与上线的生命周期中,将代码提交到微信平台(上传代码、预览或发布)是最关键的一步。然而,许多开发者在本地开发环境或CI/CD流水线中提交代码时,都可能遭遇一个令人困惑的错误:index.…

2026/7/26 9:55:11阅读更多 →
如何快速检测PDF差异?diff-pdf终极指南帮你一键搞定

如何快速检测PDF差异?diff-pdf终极指南帮你一键搞定

如何快速检测PDF差异?diff-pdf终极指南帮你一键搞定 【免费下载链接】diff-pdf A simple tool for visually comparing two PDF files 项目地址: https://gitcode.com/gh_mirrors/di/diff-pdf 在文档协作、合同审核、设计稿审查等场景中,我们经常…

2026/7/26 9:55:11阅读更多 →
抖音批量下载神器:douyin-downloader完全指南,一键获取无水印视频

抖音批量下载神器:douyin-downloader完全指南,一键获取无水印视频

抖音批量下载神器:douyin-downloader完全指南,一键获取无水印视频 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and …

2026/7/26 9:55:11阅读更多 →
终极免费Windows驱动清理工具:Driver Store Explorer完整指南

终极免费Windows驱动清理工具:Driver Store Explorer完整指南

终极免费Windows驱动清理工具:Driver Store Explorer完整指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现Windows系统盘空间越来越少?外设连接时经…

2026/7/26 9:55:11阅读更多 →
寒潮来袭!门窗de老毛病又犯了……

寒潮来袭!门窗de老毛病又犯了……

寒潮来袭!门窗de老毛病又犯了……全国性的降温来袭,北方开启暴雪的极端天气,湿寒气候导致疫情继续持续,强降雪使降雪厚度达10cm以上,大家在室内的时间会更多些,这时也是考验室内舒适度和外窗结构保温的最佳…

2026/7/26 9:53:11阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

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

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

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

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

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

2026/7/26 0:01:28阅读更多 →
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/26 0:01:28阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

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

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

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

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

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

2026/7/26 0:01:28阅读更多 →
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/26 0:01:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

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

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

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

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

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

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

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

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

2026/7/25 19:03:04阅读更多 →