Java反射概念
来源:互联网 发布:股票医生软件下载 编辑:程序博客网 时间:2024/05/01 03:39
【类的加载】
当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。
加载
就是指将class文件读入内存,并为之创建一个Class对象(表示class文件中的内容,就是class文件中的成员变量,构造方法,成员方法)。
任何类被使用时系统都会建立一个Class对象。
连接
验证——是否有正确的内部结构,并和其他类协调一致。
准备——负责为类的静态成员分配内存,并设置默认初始化值。
解析——将类的二进制数据中的符号引用替换为直接引用。
初始化
【类初始化时机】
创建类的实例。
访问类的静态变量,或者为静态变量赋值。
调用类的静态方法。
使用反射方式来强制创建某个类或接口对应的java.lang.Class对象。
初始化某个类的子类。
直接使用java.exe命令来运行某个主类。
【类加载器】
类加载器
负责将.class文件加载到内存中,并为之生成对应的Class对象。
类加载器的组成
Bootstrap ClassLoader 根类加载器
也被称为引导类加载器,负责Java核心类的加载。比如System,String等。在JDK中JRE的lib目录下rt.jar文件中。
Extension ClassLoader 扩展类加载器
负责JRE的扩展目录中jar包的加载。在JDK中JRE的lib目录下ext目录。
Sysetm ClassLoader 系统类加载器
负责在JVM启动时加载来自java命令的class文件,以及classpath环境变量所指定的jar包和类路径。
【反射】
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
总之,就是通过class文件对象(也就是Class类对象),去使用该文件中的成员变量,构造方法,成员方法。
Class类:
* 成员变量 Field
* 构造方法 Constructor
* 成员方法 Method
获取class文件对象的方式:
A:Object类的getClass()方法
Person p = new Person();
Class c = p.getClass();
B:数据类型的静态属性class
Class c = Person.class;
C:Class类中的静态方法public static Class forName(String className)
Class c = Class.forName("cn.iponkan.Person");
- Java反射机制概念
- Java反射概念思想
- Java反射的概念
- java 反射概念
- Java反射概念
- Java反射的概念
- Java反射概念及类的反射
- (Java基础--反射)理解反射的概念
- java反射概念加案例
- java反射机制基础概念
- Java——反射概念、应用
- java 反射机制详解--概念+例子
- 浅析Java RTTI 和 反射的概念
- Java反射机制概念及构造方法的反射
- 反射的概念及在Java中的类反射
- 反射概念
- Test3_透彻分析java反射机制的基础概念
- Test4_理解java反射机制的概念以及应用
- VCS-5 LVM和VxVM
- 11.RecyclerView使用
- ubuntu cannot access network using bridge to host windwos
- USACO-Section1.1 Friday the Thirteenth【泰勒公式】
- Linux常用命令介绍(搜索命令)
- Java反射概念
- 傲娇与偏见
- jQuery笔记
- 两数组的交
- JavaScript学习记录(4)
- spark报错:ERROR SparkUI: Failed to bind SparkUI,解决办法
- 图片无缝滚动
- 今天做到一道面试题:Android中进程的通信方式
- Java反射获取构造方法