温故知新-源码分析篇

简介: 温故知新-源码分析篇

01 Mind Map

02 Question&Answer

Q1: AOP几个关键术语对应的含义?

A:关注点、切面、切入点。


Q2: AOP底层实现原理?

A:预编译方式和运行期动态代理实现,在不修改源码的情况下统一添加功能的一种技术。


Q3: AOP注解与XML的实现方式?

A:注解?通知?切入点表达式?切入点?。


Q4: AOP应用场景,举例3个?


Q5: 事务的分类(2个)?各有什么优缺点?

A:代码粗粒度与细粒度的控制?。


Q6: 注解的概念以及主要关键标签?

A:辅助功能?@Target、@Retention?。。。


Q7: 手动实现事务的思路?

A:定义事务工具类 -> 定义事务注解类 -> AOP切面处理


Q8: 事务的传播行为有哪些?

A:???


Q9: XML技术有哪些(3种)?分别有什么优缺点?

A:内存?灵活?


Q10: XML技术与Json的区别以及应用场景?

A:带宽?互联网、银行?


Q11: 什么是IOC?

A:负责对象管理、解耦


Q12: IOC底层使用的原理?

A:反射+XML技术


Q13: IOC源码实现思路?

A:定义注解(比如Bean)->XML读取文件->反射获取类 ->判断类是否有注解 -> 初始化类 -> 放入IOC容器


Q14: SpringMVC运行流程?

A:DispatcherServlet(中央控制器)、HandlerMapping(处理器映射器)、HandlerAdapter(处理器适配器)、Handler(即Controller)、ViewResolver(视图解析器)


Q15: SpringMVC运行流程?

A:DispatcherServlet(中央控制器)、HandlerMapping(处理器映射器)、HandlerAdapter(处理器适配器)、Handler(即Controller)、ViewResolver(视图解析器)


Q16: Servlet的生命周期?

A: Servlet加载 -> 实例化 -> 服务 -> 销毁


Q17: SpringMVC实现的思路?

A: 加载web.xml文件到DispatcherServlet -> DispatcherServlet加载配置文件、类、实例化对象到IOC容器,并初始化HandlerMapping -> doGet或者doPost方法取出URL,HandlerMapping取出方法,反射调用。


Q18: SpringMVC实现的思路?

A: 加载web.xml文件到DispatcherServlet -> DispatcherServlet加载配置文件、类、实例化对象到IOC容器,并初始化HandlerMapping -> doGet或者doPost方法取出URL,HandlerMapping取出方法,反射调用。


Q19: 数据库连接池原理?

A: 对象池管理数据库连接。


Q20: DBCP与C3P0的区别?

A: 空闲连接?连接数?大于阀值,当前连接与所有连接断开?


Q21: 数据库连接池实现思路?

A: 定义容器去管理???


Q22: MyBatis的两种交互方式?以及使用接口的原因?

A: ???


Q23: MyBatis源码实现思路?

A: 定义JDBCUtils -> 动态代理处理实现


Q24: List继承于什么接口?

A: ???


Q25: ArrayList底层实现?

A: 数组,初始化大小?扩容大小?线程是否安全?


Q26: Vector底层实现?

A: 数组,初始化大小?扩容大小?线程是否安全?


Q26: ArrayList源码实现思路?

A: 定义数组,初始化大小、扩容。。。。。。


Q27: 数组拷贝的两种方式?应用场景?效率?

A: Arrays.copyOf()、System.arrayCopy()。。。。。


Q28: 链表(LinkedList)与数组的区别?

A: 存储区域?内存是否连续?修改时性能的影响?使用场景(是否经常修改)


Q29: 链表(LinkedList)源码实现?

A: 定义Node节点(前节点信息、业务数据、后节点信息)


Q30: Map底层实现原理(基于LinkedList)?

A: 数组+链表


Q31: Map底层put和get原理?

A: 是否有key来考虑?


Q32: Map的扩容机制?

A: 实际容量=初始容量*负载因子?超过就resize


Q32: Map底层原理实现(基于JDK1.7)?

A: 按公式:实际容量=初始容量*负载因子来实现?

目录
相关文章
|
2月前
|
XML Java 数据库连接
谈谈Java反射:从入门到实践,再到原理
谈谈Java反射:从入门到实践,再到原理
60 0
|
3月前
|
前端开发 Java 数据库连接
SSM框架笔记源码剖析
SSM,是Spring+Spring MVC+MyBatis的缩写,是继SSH之后,目前比较主流的JavaEE企业级框架,适用于搭建各种大型的企业级应用系统。Spring依赖注人DI来管理各层的组件,使用AOP (面向切面编程)管理事务、日志、权限等。Spring MVC代表Model(模型)、View(视图).Contoller(控制)接收外部请求并进行分发和处理。MyBatis是基于JDBC的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。
24 0
|
6月前
|
Java 数据库连接 数据库
源码分析系列教程(完) - 终章总结
源码分析系列教程(完) - 终章总结
27 0
源码分析系列教程(完) - 终章总结
|
9月前
|
移动开发 JavaScript 前端开发
面试题练习第五篇
面试题练习第五篇
60 1
|
存储 缓存 前端开发
【ClassLoader】深入浅出的核心源码分析|周末学习
【ClassLoader】深入浅出的核心源码分析|周末学习
130 0
【ClassLoader】深入浅出的核心源码分析|周末学习
|
存储 设计模式 SQL
【ThreadPoolExecutor】深入浅出的核心源码分析|周末学习
【ThreadPoolExecutor】深入浅出的核心源码分析|周末学习
51 0
|
缓存 Oracle 前端开发
JVM合集之开篇点题
JVM合集之开篇点题
111 0
JVM合集之开篇点题
【面试:基础篇06.2:FailFast与FailSafe源码分析】
【面试:基础篇06.2:FailFast与FailSafe源码分析】
98 0
|
存储 缓存 JSON
tinydb 源码阅读
TinyDB是一个小型,简单易用,面向文档的数据库;代码仅1800行,纯python编写。TinyDB项目大小刚好,学习它可以了解NOSQL数据库的实现。
385 0
tinydb 源码阅读
看完这篇ConcurrentHashMap源码解析,我又觉得能手撕面试官了(中)
看完这篇ConcurrentHashMap源码解析,我又觉得能手撕面试官了(中)
112 0
看完这篇ConcurrentHashMap源码解析,我又觉得能手撕面试官了(中)

相关实验场景

更多