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