SpringCloud
SpringBoot
Spring
Java
Java的高级特性
Java运行图解
- 泛型——解决静态问题,其余为动态
- 解决object无法编译时类型检查问题
- javac编译进行类型擦除,转化为边界类(通配符),兼容老版本,减少.class文件的复杂性;保留声明数据用于运行时反射生成
- 反射
- 运行时根据自动生成的Class类进行反射
- 动态代理(新建类)
- JDK:解释时使用反射,操作Proxy类对接口进行代理
- CGLIB:使用ASM技术,解释时先进行动态编译,生成代理子类,由代理子类实现(不能使用AOT编译)
- 动态绑定(原有类)
- 利用方法表与指针移动判断,用于继承中多态的实现
与框架的联系总结:
- 动态代理(AOP)
- JDK:MVC实现中实现Service接口的@Service注解
- CGLIB:AOP(无接口注解,如AspectJ)、@Controller
- 反射(IoC容器的自动装配)
- 泛型(Spring Data中的Repository接口)