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