博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
透彻分析反射的基础---class类
阅读量:5308 次
发布时间:2019-06-14

本文共 1151 字,大约阅读时间需要 3 分钟。

反射的基石---class

  反射就是把java类中的各种成分映射成相应的java类.例如:一个java类中用一个class类的对象来表示,一个类中的组成部分:成员变量,方法,构造方法,包等信息也用一个个的java类来表示,就像汽车是一个类,汽车中的 发动机,变速箱等等也是一个类.表示java类的class类显然要提供一系列的方法来获取其中的变量,方法,构造方法,修饰符,包等信息,这些信息就是用相应类的实例对象来表示,他们是field,method,contructor,package等.

 

java程序中的各个java类属于同一个类事物,描述这类事物的java类名就是class.

什么是字节码:当在源程序中用到了person这个类的时候,首先将这个类的class编译的二级制编码加载到内存中来,然后再用这个二进制将它复制成一个个对象来.
如何得到各个字节码对应的实例对象或者说是获取class类
一共有三种方式:
1.类名.class,例如:System.class
2.对象.class,例如new Date().getClass
3.Class.forName("类名");例如:Class.forName("java.lang.String");

public class ReflectDemo {	public static void main(String[] args) throws ClassNotFoundException {		// 方式1		Person p = new Person();		Class c = p.getClass();		Person p2 = new Person();		Class c2 = p2.getClass();		System.out.println(p == p2);// false		System.out.println(c == c2);// true		// 方式2		Class c3 = Person.class;		// int.class;		// String.class;		System.out.println(c == c3);		// 方式3		// ClassNotFoundException		Class c4 = Class.forName("Reflect.Person");		System.out.println(c == c4);	}}

总结:

  要想解剖一个类,必须先获取到该类的字节码文件对象,而解剖是用的就是class类中的方法,class文件在反射中起到了基石的作用.

转载于:https://www.cnblogs.com/chenxiaochan/p/7253400.html

你可能感兴趣的文章
jquery 选择器,模糊匹配
查看>>
jQuery
查看>>
正则表达式-趣现象一则
查看>>
HDOJ/HDU 2562 奇偶位互换(交换位置~)
查看>>
mongodb----基础描述及安装
查看>>
AngularJS1.X学习笔记7-过滤器
查看>>
Memcache遍历查询所有键值的方法
查看>>
【转】apache与tomcat的区别
查看>>
削笔补习
查看>>
Gdb debug 多线程
查看>>
[坑][poj2396]有上下界的最大流
查看>>
NOI2015
查看>>
python-函数
查看>>
android之常用命令(未完待续)
查看>>
Objective-C基础2
查看>>
mac os app 开发
查看>>
想要升职加薪?先管理好时间与目标!
查看>>
关于字符和数字类型的索引,Oracle如何实现内部自动转换以及索引使用的验证测试...
查看>>
Verilog学习心得(一)
查看>>
编程练习效果图:XXXX年XX月X日 星期X--班级总分为:81
查看>>