ava 1.2
反射的基石--> Class类
Java类用于描述一类事物的共性,该类事物该有什么属性,没有什么属性,至于这种属性是什么,则是由这个类的实例对象来确定,不同的实例对象有不同的属性值
Class--java程序中的各个java类属于同一类食物,描述这类事物的java类名就是Class
class.forName的作用
返回刚才加载进来的字节码,1,字节码已经存在过,直接返回,jvm还没有这份字节码,则由类加载器加载,把加载进来的字节码缓存在jvm中
.class,.getClass(),*Class.forName ..Class.forName("java.util.Date")
9个预定义Class实例对象,8个基本类型和void
int.class == Integer.TYPE
数组类型的Class实例对象
Class.isArray()
只要是在源程序中出现的类型,都有各自的Class实例对象
反射-->把Java类中的各种成分映射成相应的java类。
例如一个Java类中用一个Class类的对象来表示,一个类中的组成部分:成员变量Field,方法Method,构造方法Constructor,包Package
Constructor类
代表某一个类中的一个构造方法
Constructor[] constructor = Class.foName("java.lang.String").getConstructors()
class ->constructor-->new Object
==> (缓存)
反射会导致程序性能严重下降
用反射调用某个类的main方法
数组的反射
具有相同维数和元素类型的数组属于同一个类型,得到的字节码是同一份,即具有相同的Class实例对象,代表数组的Class实例对象的getSuperClass()方法返回的父类Object类对应的Class
基本类型的一维数组可以被当做Object类型使用,不能当做Object[]类型使用
非基本类型的一维数组,既可以当做Object类型使用,又可以当做Object[]类型使用
没有办法得到数组中元素的类型
int[] a = new int[3]
Object[] a = new Object[]{"a",1}
a[0].getClass().getName(),可以得到某个元素的类型
Class cls = Date.class//字节码1
**对象要得到字节码用方法
20
编译时,运行时
反射的基石--> Class类
Java类用于描述一类事物的共性,该类事物该有什么属性,没有什么属性,至于这种属性是什么,则是由这个类的实例对象来确定,不同的实例对象有不同的属性值
Class--java程序中的各个java类属于同一类食物,描述这类事物的java类名就是Class
class.forName的作用
返回刚才加载进来的字节码,1,字节码已经存在过,直接返回,jvm还没有这份字节码,则由类加载器加载,把加载进来的字节码缓存在jvm中
.class,.getClass(),*Class.forName ..Class.forName("java.util.Date")
9个预定义Class实例对象,8个基本类型和void
int.class == Integer.TYPE
数组类型的Class实例对象
Class.isArray()
只要是在源程序中出现的类型,都有各自的Class实例对象
反射-->把Java类中的各种成分映射成相应的java类。
例如一个Java类中用一个Class类的对象来表示,一个类中的组成部分:成员变量Field,方法Method,构造方法Constructor,包Package
Constructor类
代表某一个类中的一个构造方法
Constructor[] constructor = Class.foName("java.lang.String").getConstructors()
class ->constructor-->new Object
==> (缓存)
反射会导致程序性能严重下降
用反射调用某个类的main方法
数组的反射
具有相同维数和元素类型的数组属于同一个类型,得到的字节码是同一份,即具有相同的Class实例对象,代表数组的Class实例对象的getSuperClass()方法返回的父类Object类对应的Class
基本类型的一维数组可以被当做Object类型使用,不能当做Object[]类型使用
非基本类型的一维数组,既可以当做Object类型使用,又可以当做Object[]类型使用
没有办法得到数组中元素的类型
int[] a = new int[3]
Object[] a = new Object[]{"a",1}
a[0].getClass().getName(),可以得到某个元素的类型
Class cls = Date.class//字节码1
**对象要得到字节码用方法
20
编译时,运行时