码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA 反射原理

时间:2020-03-01 21:34:43      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:文件加载   如何使用   成员方法   get   java 反射   加载   for   区别   src   

反射作用

在程序运行的过程中,动态的创建对象

反射的基石

字节码文件对象------>Class类的对象----是Java的一个类型
定义一个类class A{} ---->Java中的关键字,用来定义一个类!

字节码文件

java源文件进行编译(javac)之后的.class文件

字节码文件对象

jvm把字节码文件加载到jvm内存中去之后,jvm就认为这个字节码文件是一个字节码文件对象。
字节码文件对象可看作是:jvm在内存中的体现。

如何获得字节码文件对象(3中方式)

  1. Object类的getClass方法
  2. 类型的.class属性
  3. Class.forName("类的路径")

区别:
.getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的。
类的Class类实例是通过.class获得的,显然,类没有.getClass()方法。
ps: 同一个类的字节码文件只会被创建一次

如何使用字节码文件对象

字节码文件包含什么?

类 字节码对象
成员变量 成员变量对象(类型Field)

构造方法 构造方法对象(类型Constructor)

成员方法 成员方法对象(类型Method)

用字节码文件对象来构建一个类的对象

技术图片

使用成员方法对象(Method)

技术图片

成员变量对象(Field)

技术图片

JAVA 反射原理

标签:文件加载   如何使用   成员方法   get   java 反射   加载   for   区别   src   

原文地址:https://www.cnblogs.com/whyaza/p/12391814.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!