"Java面试题:SpringMVC原理与ThreadLocal应用"
需积分: 5 113 浏览量
更新于2024-01-11
收藏 31KB DOCX 举报
Java面试题.docx中介绍了SpringMVC的运行原理,包括以下几个步骤:客户端请求首先提交到DispatcherServlet,然后由DispatcherServlet控制器查询HandlerMapping,找到并分发到指定的Controller中,Controller调用业务逻辑处理后,返回ModelAndView,最后DispatcherServlet查询一个或多个ViewResolver视图解析器,找到ModelAndView指定的视图。
ThreadLocal是线程变量副本的概念,Synchronized可以实现内存共享,而ThreadLocal则为每个线程维护一个本地变量。它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本。在Spring中,ThreadLocal在管理Request作用域中的Bean、事务管理、任务调度、AOP等模块中都发挥着巨大的作用。大部分Bean都可以声明为Singleton作用域,采用ThreadLocal进行封装,使得有状态的Bean能够以Singleton的方式在多线程中正常工作。
另外,面试题还涉及到Java的GC(垃圾回收)机制。GC发生的时机是在内存不足时,GC会对堆内存中的垃圾对象进行回收。GC对什么东西做了什么事情,取决于具体的GC算法和配置。在面试题中,提到了新生代的GC机制,包括Eden区和两个Survivor区。新对象首先会被放入Eden区,当Eden区空间不足时,会进行一次Minor GC。Minor GC将不再使用的对象进行清理,并将存活的对象移动到Survivor区。如果Survivor区也不够存放,那么一部分对象将会被移动到老年代,而剩余的对象将会被清空。
综上所述,SpringMVC的运行原理是通过DispatcherServlet来控制请求的分发和处理,ThreadLocal是一种用于线程间数据隔离的机制,Java的GC机制是在内存不足时对垃圾对象进行回收。
2021-09-30 上传
2020-05-10 上传
2023-06-15 上传
2024-12-27 上传
2024-12-27 上传
2024-12-27 上传
2024-12-27 上传
海澜明月
- 粉丝: 28
- 资源: 6890
最新资源
- jenkins-job-manager
- avl:完全通用的类型安全数据结构
- E-learn-page:项目电子学习
- angular:角度项目
- PAT、蓝桥杯 Java 题解集
- 快速入门:各种用于创建基础结构或设置实验工具的快速入门脚本
- sal:简单的算法库
- CHAINS:CHAINS是一组脚本,用于自动执行“量子控制筛选”方法,该方法包括扫描多个分子,寻找其电子可以通过激光轻松控制的分子。 但是,每个单独的脚本都可以轻松调整以应对其他类似问题
- react-ts-test:基于create-react-app --typescript
- pisdk.rar 软件
- libzbtfb-开源
- shahidzaka.com:Shahid Zaka的主页:
- pb中获得本机IP地址\MAC地址信息纯代码方式
- Link Grabber-crx插件
- React-CNode::sparkles:基于React Router4 的CNode
- 包装生成器基础,用于使用LLVM包装适用于Python和其他语言的C ++。-Python开发