测试题(四)

31 为什么需要垃圾回收

避免长期未使用的对象占用内存。

GC 自动回收无引用的对象,避免内存泄漏,确保系统稳定。

32 SpringMVC 执行流程

DispatcherServlet 接收请求 → HandlerMapping 找处理器 → HandlerAdapter 适配 → Controller 执行业务 → 返回 ModelAndView → ViewResolver 解析视图 → 渲染。

特点是分层清晰、耦合度低。

33 编程式事务与声明式事务

编程式需要手写 begin、commit、rollback。

声明式通过 @Transactional 自动管理,更常用更方便。

34 MyBatis 中 $ 与 #

$ 用字符串拼接,存在 SQL 注入风险。

使用预编译占位符,是安全写法。

35 MyBatis 动态 SQL

用于处理复杂条件查询,避免大量 if-else 拼接,提高可维护性。

36 Shiro 认证流程

用户提交身份信息 → SecurityManager 处理 → Realm 校验 → 成功登录。

授权则是判断用户角色与权限。

37 BeanFactory 与 ApplicationContext 区别

BeanFactory 懒加载,只在获取时创建 Bean。

ApplicationContext 启动时创建所有 Bean,功能更丰富。

38 Spring Bean 生命周期

实例化 → 设置属性 → 初始化方法 → Bean 使用 → 销毁方法。

39 singleton 与 prototype

singleton 全局唯一对象。

prototype 每次获取新对象,常用于无状态场景。

40 Spring 的优势

降低耦合、支持 AOP、事务、测试集成、便于整合框架、提升开发效率。

相关推荐
吴声子夜歌2 分钟前
Java面试——数据结构(一)
java·数据结构·面试
罗超驿2 分钟前
SpringBoot 快速入门
java·spring boot·后端
'20625 分钟前
**写了个自动整理下载视频的脚本:按片名归档、自动重命名、生成目录索引
开发语言·python·ffmpeg·音视频·cctv
疯狂打码的少年28 分钟前
【数据结构】选择类排序:简单选择与堆排序
java·数据结构·笔记·算法
xys_67829 分钟前
深挖C语言:动态内存管理
c语言·开发语言
OPEN-F1 小时前
Python进阶教程:项目工程化与虚拟环境
开发语言·python
吴声子夜歌1 小时前
Java面试——基础
java·开发语言·面试
智码看视界1 小时前
Day 56:AI辅助开发全面提效:Copilot + Cursor的Java开发
java·单元测试·copilot·cursor·后端开发·代码审查·ai辅助开发
asdfg12589631 小时前
一个例子理解Java中的函数式接口
java·函数式接口
toolsmith1 小时前
一个商业软件的License校验,居然把验签的证书放在了License文件里
java