Reflection(反射)(类加载)

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

Reflection(反射)

反射:在java中一个类在运行过程中,对于这个类的属性任意调用,对于这个类的对象可以任意调用任意调用方法,这种动态获取属性信息,和动态调用方法的行为被称为反射机制

1.四种类加载方式

延时加载(只有在被new对象时才会被加载)

	Class c = 实体对象.class;
	c.newInstance();
	实体对象 et = new 实体对象();
	Class c = et.getclass();

及时加载(会立刻打印静态块)

	Class c = Class.forName("对象路径");

通过类加载器(系统加载器)获取(也属于延时加载)

	ClassLoader loader = ClassLoader.getSystemClassLoader();
	Class c = loader.loadClass("对象路径");
2.获取一个类的所有父类
	Class c = 类.class;
	while(c!=null){
			c = c.getSuperclass();
	}
3.基础与包装类
包装类
	Class c1 = Integer.class;
	c1.getName==java.lang,.Integer
	
基础类	
	Class c1 = int.class;
	c1.getName==int
	
在jdk1.5版本之后
	Class c3 = Integer.TYPE;
	c3==int

知识点总结

加载机制分为1.向上委托 2.向下通知
1.向上委托:系统加载器不会马上加载,会向上委托,给扩展加载器与不会马上加载,会向上委托给引导加载器
1.向下通知:如果扩展加载器中有这个类型会直接加载,若没有通知ExtclassLoader加载,若ExtclassLoader
没有则会通知AppclassLoader加载,若AppclassLoader也没有则会报错

猜你喜欢

转载自blog.csdn.net/D1206/article/details/94604943