测试题(四)

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、事务、测试集成、便于整合框架、提升开发效率。

相关推荐
techdashen27 分钟前
Go设计取舍之六: sync.Mutex正常模式与饥饿模式
开发语言·后端·golang
Zane199437 分钟前
CAS 与原子类:Java 如何实现无锁编程
java·后端
TunerT_TQ39 分钟前
【智能体安全治理|专栏第9期】从“一堆规则”到“数字宪法”:智能体治理的下一个阶段
java·开发语言·安全·开源治理·大模型安全·ai基础设施·智能体安全
Aurorar0rua40 分钟前
CS50 x 2024 Notes Algorithms - 07
c语言·开发语言·学习方法
legendary_bruce1 小时前
RAG知识库进阶-1
java·aigc
必须会一定会1 小时前
大模型手搓文件对比工具(6):差异不用再手选
java·人工智能·ai编程
yio_yin1 小时前
MyBatis
java·前端·mybatis
程序员-Benothing1 小时前
Java ForkJoinPool 详解:从分治思想到高性能并行计算
java·开发语言·后端·面试·职场和发展
脚踏实地皮皮晨1 小时前
003006001_WrapPanel控件
开发语言·c#·.net·wpf·visual studio
上海安当技术2 小时前
单点登录 SSO 怎么选协议?SAML 2.0 / OAuth 2.0 / OIDC / CAS 对比与 ERP、OA、CRM 接入实战
java·开发语言