温故知新-源码分析篇

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

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: 按公式:实际容量=初始容量*负载因子来实现?

目录
相关文章
|
Java 数据库连接 数据库
源码分析系列教程(完) - 终章总结
源码分析系列教程(完) - 终章总结
57 0
源码分析系列教程(完) - 终章总结
|
5月前
|
安全 Java 容器
第一篇:并发容器学习开篇介绍
第一篇:并发容器学习开篇介绍
40 4
|
Java 数据安全/隐私保护
【面试题精讲】何谓反射?
【面试题精讲】何谓反射?
|
Java 编译器 程序员
【面试题精讲】何谓注解?
【面试题精讲】何谓注解?
|
移动开发 JavaScript 前端开发
面试题练习第五篇
面试题练习第五篇
86 1
|
存储 缓存 前端开发
【ClassLoader】深入浅出的核心源码分析|周末学习
【ClassLoader】深入浅出的核心源码分析|周末学习
174 0
【ClassLoader】深入浅出的核心源码分析|周末学习
|
存储 设计模式 SQL
【ThreadPoolExecutor】深入浅出的核心源码分析|周末学习
【ThreadPoolExecutor】深入浅出的核心源码分析|周末学习
78 0
【面试:基础篇06.2:FailFast与FailSafe源码分析】
【面试:基础篇06.2:FailFast与FailSafe源码分析】
123 0
|
存储 数据采集 运维
结合 Sentinel 专栏谈谈我的源码阅读方法
结合 Sentinel 专栏谈谈我的源码阅读方法
结合 Sentinel 专栏谈谈我的源码阅读方法
|
存储 缓存 JSON
tinydb 源码阅读
TinyDB是一个小型,简单易用,面向文档的数据库;代码仅1800行,纯python编写。TinyDB项目大小刚好,学习它可以了解NOSQL数据库的实现。
439 0
tinydb 源码阅读

相关实验场景

更多