温故知新-源码分析篇

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

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

目录
相关文章
|
12月前
|
Java 数据库连接 数据库
源码分析系列教程(完) - 终章总结
源码分析系列教程(完) - 终章总结
52 0
源码分析系列教程(完) - 终章总结
|
4月前
|
安全 Java 容器
第一篇:并发容器学习开篇介绍
第一篇:并发容器学习开篇介绍
38 4
|
5月前
|
XML 缓存 Java
大厂面试攻略:Spring框架核心要点精讲
Java SPI (Service Provider Interface) 是一种服务发现机制,允许在运行时动态加载和发现服务提供者。在数据库驱动加载中,SPI使得数据库驱动能够自动识别和注册,而无需显式加载。 Spring 是一个广泛应用的轻量级框架,核心功能包括依赖注入(DI)和面向切面编程(AOP)。不使用Spring时,开发人员需要手动管理对象的创建和依赖关系,使用Servlet等基础组件完成Web开发,以及手动处理JDBC操作。Spring通过管理Bean的生命周期和依赖关系,简化了企业级应用的开发,降低了代码的侵入性。
73 1
大厂面试攻略:Spring框架核心要点精讲
|
5月前
|
设计模式 Java
【Java设计模式 - 专栏开篇简介】 java设计模式开篇
【Java设计模式 - 专栏开篇简介】 java设计模式开篇
37 0
|
11月前
|
SQL Kubernetes Java
深度剖析FlinkX(纯钧)源码
深度剖析FlinkX(纯钧)源码
144 0
|
Java 数据安全/隐私保护
【面试题精讲】何谓反射?
【面试题精讲】何谓反射?
|
Java 编译器 程序员
【面试题精讲】何谓注解?
【面试题精讲】何谓注解?
|
移动开发 JavaScript 前端开发
面试题练习第五篇
面试题练习第五篇
84 1
|
存储 缓存 安全
2023年Java核心技术面试第三篇(篇篇万字精讲)
2023年Java核心技术面试第三篇(篇篇万字精讲)
54 0
|
存储 NoSQL Linux
python技术面试题(二十二)
python技术面试题(二十二)

相关实验场景

更多