关于反射

Volatile的可见性由MESI一致性协议保证,还有总线嗅探机制。

Spring是轻量级的,开源的javaee的框架。
IOC:控制反转,把创建对象的过程交给Spring进行管理。
AOP:面向切面编程,再不修改源码的情况下进行功能增强。

动态语言:可在程序运行的时候改变程序结构活变量类型。java不是动态语言,但是有一定的动态性。

反射:程序在运行状态,可以动态加载一个只有名称的类,对于任意一个已加载的类,都能够知道类的属性和方法,对于任意一个对象,都能知道他的任意一个方法和属性。

利用反射获取类的属性或者方法:

Class cls=Class.forName(“com.jr.User”);
若要获取所有的public属性:
cls.getFields(返回一个pulbic属性数组)

若要获取所有的属性:
cls.getDeclareFields(返回属性数组)

若要获得指定的属性:
cls.getField(“字段”,只能获取非pravite的);

cls.getDeclaredField(“字段”),需要设置setAccessible(true)

获取方法:
cls.getMethods:返回public方法数组;
cls.getDelareMethods:返回所有方法数组;
cls.getMethod(“方法名”):获得指定的方法(只能是public方法);
cls.getDeclareMethod(“方法名”):获得指定方法,如果是私有,需要设置setAccessible(true);
在这里插入图片描述

获取构造器:
cls.getConstructors:获取构造器数组;
cls.getConstructor(指定参数类型可以获得指定的构造器,例如int.class就是一个int参数的构造器)

通过反射获得对象的方式:
cls.newInstance:通过无参构造获得对象;

通过有参数的构造获取对象
Constructor c=cls.getConstructor(int.class)
User user=c.newInstance(1);因为上面是一个int类型的参数;

IOC底层实现原理:xml解析,工厂模式,反射。过程:创建工厂类,在工厂里通过xml解析获取class中的字段,在通过反射创建对象。

IOC的两大核心接口:
BeanFatory:IOC容器的基本实现,是Spring内部的使用接口,不提供给开发人员使用,加载文件时不会创建对象,只有在获取对象时才会创建对象。需要手动注册。

ApplicationContext:BeanFatory的子接口,提供更多强大的功能,一般是开发人员使用的,加载文件的时候就将对象创建了。自动注册。

DI依赖注入:就是将组件之间的依赖关系由容器在应用系统运行期来决定。
依赖注入:set方式注入(由无参创建对象);有参构造注入(由有参创建对象)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值