反射机制的说明

反射
 反射:允许程序在运行期间得到类的内部信息,并能操作对象的属性及方法
 反射特点:可以动态的创建和使用对象

获取Class类对象的6种方式:
 编译阶段:Class.forName(类的全路径),多用于配置文件读取类信息
 类加载阶段:类名.class,多用于参数传递
 运行阶段:对象.getClass(),多用于有对象实例
 通过类加载器获取到类的Class对象:类加载器.loadClass(类的全路径)
 基本数据类型获取类对象:基本数据类型.class
 基本数据类型对应的包装类型:包装类.TYPE

哪些类型有Class对象:外部类、内部类、接口、数组、枚举、注解、基本数据类型、void

类加载
 静态加载:编译时加载相关的类,依赖性太强
 动态加载:运行时加载相关的类

类加载的时机:
  1.new对象时
  2.main方法执行时
  3.调用类的静态成员时
  4.通过反射创建对象时(动态加载)
  5.子类被加载时

java源文件(.java)--编译--》java字节码文件(.class)--运行--》类加载(3阶段)
类加载后内存的布局情况:类的字节码二进制数据保存到方法区,在堆中生成类的Class对象,类的字节码二进制数据引用类的Class对象

类加载三阶段
加载---->连接(验证、准备、解析)---->初始化
         验证:对文件数据的安全性验证
         准备:对静态变量进行默认初始化,并分配空间
         解析:将符号引用转为直接引用

加载:将类的class文件读入内存,并为之创建一个java.lang.Class对象,此过程由类加载             器完成
连接:将类的二进制数据合并到JRE中
初始化:JVM负责对类进行初始化,这里主要指静态成员
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值