不少人在面试的时候,可能都会被问到这些问题:是否看过开源框架的源码?谈谈你看过源码以后的心得?其实咱们经常使用的Spring、MyBaits这样的框架能够说是JAVA里面最经典的教科书,从中你能学习到不少写代码的经验技巧,而去悟开源框架中蕴含的优雅架构设计之道这才是最重要的。今天经过我整理的Spring笔记.xmind的重要的知识点来说讲Spring所需掌握的知识点和面试常问的一些问题!php
基础概念java
Spring的优势
Spring的缺点
SpringAOP面试
AOP 的内部原理其实就是动态代理和反射了。主要涉及到的反射类:架构
动态代理相关原理的话,你须要了解什么是代理模式、静态代理的不足、动态代理的实现原理。Spring 中实现动态代理有两种方式可选,这两种动态代理的实现方式的一个对比也是面试中常问的。并发
JDK 动态代理框架
必须实现 InvocationHandler 接口,而后经过 Proxy.newProxyInstance(ClassLoader分布式
loader, Class<?> interfaces, InvocationHandler h) 得到动态代理对象。函数
CGLIB 动态代理高并发
使用 CGLIB 动态代理,被代理类不须要强制实现接口。CGLIB 不能对声明为 final学习
的方法进行代理,由于 CGLIB 原理是动态生成被代理类的子类。
OK,AOP 讲了。其实讲到这里,可能会有一个延伸的面试问题。咱们知道,Spring
事 物 也 是 通 过 AOP 来 实 现 的 , 我 们 使 用 的 时 候 一 般 就 是 在 方 法 上 加
@Tranactional 注解,那么你有没有遇到过事物不生效的状况呢?这是为何?这
个问题咱们在后面的面试题中会讲。
静态代理
JDK动态代理和cglib的对比
SpringIOC
依赖注入
容器的初始化过程
bean知识
大体流程
IoC 内部核心原理就是反射技术,固然这里面还涉及到 Bean 对象的初始化构建等步骤,这个在后面的生命周期中讲,这里咱们须要了解 Java 中反射是如何作的就好。这里主要说明下主要的相关类和可能面试问题转向,具体的 API 实现须要本身去看。
还有其余的类不一一列举出来,都在 java.lang.reflect 包下。说到这个模块的时候,那么面试官可能会考察相关的知识,主要是考察你是否真的有去了解过反射的使用。
举两个例子:
利用反射获取实例的私有属性值怎么作?
这里其实就是里面的重要考察点就是反射对私有属性的处理。
/**
*/
private Object getPrivateValue(Person person, String fieldName) {
try {
Field field = person.getClass.getDeclaredField(fieldName);
// 主要就是这里,须要将属性的 accessible 设置为 true
field.setAccessible(true);return field.get(person);
} catch (Exception e) {
e.printStackTrace;
}
return null;
}
如何经过反射构建对象实例?
//使用默认构造函数(无参)建立的话:
Class.newInstance
//构造函数带参的话:
Constroctor constroctor = clazz.getConstructor(String.class,Integer.class);
Object obj = constroctor.newInstance("name", 18);
Spring事务管理
基本概念
事务控制
事务属性
Spring事务管理接口
事务管理通常在Service层
SpringMVC
执行流程
注解
servlet生命周期
对应导图我有本身平时整理出来的Spring学习笔记精华文档,在这拿出来免费分享给有须要的朋友,须要获取的朋友 加群:739-289-671 获取文档免费领取方式!
对于开发同窗来讲,Spring 框架熟悉又陌生。 熟悉:开发过程当中无时无刻不在使用 Spring 的知识点;陌生:对于基本理论知识疏于整理与记忆。致使不少同窗面试时对于 Spring 相关的题目知其答案,但表达不够完整准确。下面分享互联网公司Java面试高频常问的100道题及解析!
1、基本概念面试题集( Spring 相关概念梳理)
注:为了避免影响阅读,我已经把解析整理成pdf免费分享出来,有须要的朋友帮忙转发一下而后加群:739-289-671 获取文档免费领取方式!
2、应用场景面试题集(各知识点不一样使用场景选型)
3、深度度知识面试题集(底层实现原理详解)
注:为了避免影响阅读,我已经把解析整理成pdf免费分享出来,有须要的朋友帮忙转发一下而后加群:739-289-671 获取文档免费领取方式!
4、拓展内容面试题集(Spring Boot 相关题集)
同时还分享更多精选整理的学习资料,包含(Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!)
资料免费领取方式:加群:739-289-671 便可获取免费领取方式!
架构学习视频