Java RTTI(Run-Time Type Identification) 运行时类型识别

来源:互联网 发布:360网络电视直播 编辑:程序博客网 时间:2024/05/16 00:44

1.运行时类型信息

Java在运行时识别对象和类的信息,主要有两种方式:一种是“传统的RTTI”,它假定我们在编译时已经知道了所有的类型;另一种是“反射机制”,它允许我们在运行时发现和使用累的信息。——摘自Java编程思想

RTTI的三种形式:

1.传统的类型转换,由RTTI确保转换的正确性

2.代表对象的Class对象,通过查询Class对象可以获取运行时所需的信息

3.使用关键字 isinstanceof: 它返回一个布尔值,来说明对象是不是某个类型的实例

2.Class对象

Class对象包含了与类有关的信息,Java使用Class对象来执行其RTTI。每个类都有一个Class对象,每当编写并且编译了一个新类,就会产生一个Class对象(保存在同名的.class文件中)。

获取Class对象引用的方式:

1.可以用forName() 获取Class对象的引用

2.使用类字面常量 比如 

Person.class 

来获取Class对象的引用

上述两种获得Class对象引用方式的区别如下:

1.Class.forName() 获取Class引用会立即进行类初始化,而.class不会自动初始化该Class对象

2.Class.forName() 需要置于try catch语句中,而.class不需要,它在编译期间就会受到检查


Java中所有的类都是在对其第一次使用时,动态地加载到JVM中的。它分三个步骤:

1、加载:类加载器查找到字节码(.class文件)并根据这些字节码创建一个Class对象;

2、链接:验证类中的字节码,为静态域分配存储空间,需要的话同时解析这个类其它类的所有引用;

3、初始化:当类的静态方法(构造器是特殊的静态方法)或者非常数静态域(即不是编译器常量)被首次引用时,执行静态初始化块和初始化静态数据。


本篇简单介绍了Java的RTTI,下回细说Java反射机制。


阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 复方氨基酸注射液18aa 氨基酸适合什么年龄 氨基酸洗面奶不适合那些人 支链氨基酸什么时候吃 eltamd氨基酸洁面乳 氨基酸适合什么人群 小儿复方氨基酸注谢液作用 输氨基酸适合什么人群 氨基酸洗面奶有什么功效 含有氨基酸的洗面奶 氨基酸洗面奶的功效与作用 氨基酸洁面乳的作用与功效 氨基酸洗面奶有哪些 氨基酸洗面奶的好处 氨基酸洗面奶有什么作用 氨基酸的功效与作用对皮肤 注射氨基酸的功效与作用 氨基酸输液功效与作用 口服氨基酸的功效与作用 输氨基酸的功效与作用 吊氨基酸的功效与作用 氨基酸口服液哪个牌子好 氨基酸对皮肤的作用 芳草集氨基酸洗面奶 芙丽芳丝氨基酸洗面奶 氨基酸口服液的功效与作用 复方氨基酸注谢液价格 挂氨基酸有什么好处 全自动氨基酸分析仪 价格 氨基酸注射夜的功效 孕妇可以输氨基酸吗 全自动氨基酸分析仪 氨基酸洗发水的功效与作用 孕妇打氨基酸有什么好处 氨基酸水溶肥料的作用 吃氨基酸有什么好处 什么牌子的氨基酸洗面奶好用 氨基酸是酸性还是碱性 氨基酸洗面奶好用吗 氨基酸洗面奶哪个好用 什么氨基酸洗面奶好用